Open In Colab

Basic spatial operations in Geo Dataframes¶

We will review some important formatting processes for geodataframes. As usual, let's do this:

  1. Create a repository named: geodfprepro.
  2. Clone that repo to a local folder in your computer.
  3. In that local folder in your computer, create a folder named maps and data.
  4. Put the brazilMaps_5641.gpkg file that contains the three maps prepared last class into the map folder.
  5. Download the shapefile of "Brazil - Subnational Administrative Boundaries" from here and save it in the maps folder (you need to unzip the file).
  6. Download a CSV file with information on the airports in Brazil from this website, I will save it in my data folder:
  7. Commit and push.

Let's read _Brazil5641.gpkg from the GitHub link with the help of geopandas:

In [1]:
import os


import geopandas as gpd
from  fiona import listlayers

#maps
brazilMaps='https://github.com/CienciaDeDatosEspacial/geodfprepro/raw/main/maps/brazilMaps_5641.gpkg'

#layers in maps
listlayers(brazilMaps)
Out[1]:
['country', 'cities', 'rivers']

Retrieving each map (layer):

In [2]:
brazil=gpd.read_file(brazilMaps,layer='country')
brazil_cities=gpd.read_file(brazilMaps,layer='cities')
brazil_rivers=gpd.read_file(brazilMaps,layer='rivers')

We know they share the same CRS:

In [3]:
brazil.crs.to_epsg()==brazil_cities.crs.to_epsg()==brazil_rivers.crs.to_epsg()
Out[3]:
True

We also remember that having the same CRS allows one plot with several layers of maps:

In [4]:
# plotting tinee que tner el mismo cr para que cada layer salga encima de otro ene la psoicion correcta
base = brazil.plot(facecolor="greenyellow")
brazil_rivers.plot(edgecolor='blue', linewidth=0.5,ax=base)
brazil_cities.plot(marker='+', color='red', markersize=15,ax=base)
Out[4]:
<Axes: >

Now, let's see some important spatial operations:

  1. Formatting Projection

    • Projecting Geoseries
    • Projecting Naive Geodata
    • Projecting long/lat
  2. Combining GeoDF rows

    • Dissolving
    • Unary union
  3. Creating Spatial Points

    • Creating a convex hull
  4. Checking Validity

Formating Geoseries projections¶

You know brazil_5641 is a multipolygon:

In [5]:
brazil
Out[5]:
COUNTRY geometry
0 Brazil MULTIPOLYGON (((1926257.542 8894978.397, 19262...

Sometime, you just need the border (lines):

In [6]:
brazil.boundary #por eso es multistring porque estoy pidiendo que gurade el borde del poligono
#me da un valor es como un dao el excel, es como que me da un valor dame la media y me da 3.5
#son diefentes estrcuturas de datas y por elllo aplicaremos cierto tipo de funciones dependiedno de la estrcutura
Out[6]:
0    MULTILINESTRING ((1926257.542 8894978.397, 192...
dtype: geometry
In [7]:
# This is just the borderline
brazil.boundary.plot()
Out[7]:
<Axes: >

Always check the data type:

In [8]:
# does 'boundary' return a GDF?
type(brazil.boundary)
Out[8]:
geopandas.geoseries.GeoSeries

Some operations in geopandas require GDF or GS. If you need a GDF instead of a GS:

In [9]:
# converting into GDF
brazil.boundary.to_frame() #aqui lo he convertido en una tabla geodataframe
#esto es un gdf a partir de una geoseries
#le puedo decri a pyhton datos cual es la columna que tiene datos geometricos indepedneitemente de su nombre 'geometrías'
#por si acaso la geometria es 'geometrías'
#me asegruo de decirle cual es la geometria
Out[9]:
0
0 MULTILINESTRING ((1926257.542 8894978.397, 192...

Notice you get a very simple GDF, and you may want to add some information:

In [10]:
# conversion
brazil_border=brazil.boundary.to_frame() 

# new column (optional)
brazil_border['name']='Brazil' 

# renaming the geometry column
brazil_border.rename(columns={0:'geometry'},inplace=True) 

#setting the geometry (the name is not enough)
brazil_border = brazil_border.set_geometry("geometry")

# verifying:
brazil_border.crs
Out[10]:
<Projected CRS: EPSG:5641>
Name: SIRGAS 2000 / Brazil Mercator
Axis Info [cartesian]:
- X[east]: Easting (metre)
- Y[north]: Northing (metre)
Area of Use:
- name: Brazil - offshore - equatorial margin.
- bounds: (-51.64, -5.74, -32.43, 7.04)
Coordinate Operation:
- name: Petrobras Mercator
- method: Mercator (variant B)
Datum: Sistema de Referencia Geocentrico para las AmericaS 2000
- Ellipsoid: GRS 1980
- Prime Meridian: Greenwich

You see you multistring:

In [11]:
brazil_border #en la tarea tine que parecere tal cual asi geometry name y multistring
Out[11]:
geometry name
0 MULTILINESTRING ((1926257.542 8894978.397, 192... Brazil

You can add this GDF as a layer:

Exercise 1¶

1. Check if your country is a polygon or multipolygon. 2. Recover just the boundaries of that country. 3. Turn the boundary into a GDF.

Lacking CRS information¶

Reprojecting seems a simple process, but you might find some interesting cases. Let's read the maps on states and municipalities: y ambos son poligonos

In [13]:
brazil_states=gpd.read_file(os.path.join("maps","bra_adm_ibge_2020_shp","bra_admbnda_adm1_ibge_2020.shp"))
brazil_municipalities=gpd.read_file(os.path.join("maps","bra_adm_ibge_2020_shp","bra_admbnda_adm2_ibge_2020.shp"))

Notice this:

In [15]:
brazil_states.crs, brazil_municipalities.crs
Out[15]:
(None, None)

They do not have crs information, however they can be plotted:

In [22]:
import matplotlib.pyplot as plt

fig, (ax1, ax2) = plt.subplots(ncols=2, sharex=False, sharey=False, figsize=(12,12))

brazil_states.plot(ax=ax1, facecolor='pink', edgecolor='brown')
brazil_municipalities.plot(ax=ax2, facecolor='pink', edgecolor='black',linewidth=0.2)
Out[22]:
<Axes: >

Since we are using the crs 5641 for Brazil, the initial strategy could be to set the CRS with the right projection :

In [23]:
 brazil_states.to_crs(5641)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[23], line 1
----> 1 brazil_states.to_crs(5641)

File C:\ProgramData\anaconda3\envs\SDS_Mi_ambiente_Romina\Lib\site-packages\geopandas\geodataframe.py:1425, in GeoDataFrame.to_crs(self, crs, epsg, inplace)
   1423 else:
   1424     df = self.copy()
-> 1425 geom = df.geometry.to_crs(crs=crs, epsg=epsg)
   1426 df.geometry = geom
   1427 if not inplace:

File C:\ProgramData\anaconda3\envs\SDS_Mi_ambiente_Romina\Lib\site-packages\geopandas\geoseries.py:1157, in GeoSeries.to_crs(self, crs, epsg)
   1078 def to_crs(
   1079     self, crs: Optional[Any] = None, epsg: Optional[int] = None
   1080 ) -> GeoSeries:
   1081     """Returns a ``GeoSeries`` with all geometries transformed to a new
   1082     coordinate reference system.
   1083 
   (...)
   1154 
   1155     """
   1156     return GeoSeries(
-> 1157         self.values.to_crs(crs=crs, epsg=epsg), index=self.index, name=self.name
   1158     )

File C:\ProgramData\anaconda3\envs\SDS_Mi_ambiente_Romina\Lib\site-packages\geopandas\array.py:855, in GeometryArray.to_crs(self, crs, epsg)
    786 """Returns a ``GeometryArray`` with all geometries transformed to a new
    787 coordinate reference system.
    788 
   (...)
    852 
    853 """
    854 if self.crs is None:
--> 855     raise ValueError(
    856         "Cannot transform naive geometries.  "
    857         "Please set a crs on the object first."
    858     )
    859 if crs is not None:
    860     crs = CRS.from_user_input(crs)

ValueError: Cannot transform naive geometries.  Please set a crs on the object first.

Python says "Please set a crs on the object first". This would mean to know the actual projection, of the geometry:

In [24]:
brazil_states.geometry.head()
Out[24]:
0    MULTIPOLYGON (((-68.87747 -11.01987, -68.88027...
1    POLYGON ((-35.46317 -8.82467, -35.46457 -8.828...
2    MULTIPOLYGON (((-50.46147 2.11133, -50.45627 2...
3    MULTIPOLYGON (((-58.49367 -0.84197, -58.48917 ...
4    MULTIPOLYGON (((-38.70687 -17.96447, -38.70867...
Name: geometry, dtype: geometry

From the plots above and the previous rows, we conclude the maps are unprojected map; then:

In [26]:
brazil_states.crs = "EPSG:4326"
brazil_municipalities.crs = "EPSG:4326"

Now, we can reproject:

In [27]:
brazil_states=brazil_states.to_crs(5641)
brazil_municipalities=brazil_municipalities.to_crs(5641)

Exercise 2¶

1. Look for sub administrative divisions of your country obligatorio, pero si tienen los crs ya no hay nada mas que hacer es opcional encontrar un pais que no lo tenga y ponerle nombre =ESPG=5346 2. Check all the CRSs of those divisions 3. If you find one CRS is missing, fill the CRS with the right projection.

Projecting Lat/Lon Points¶

You will get Lines and Polygons as maps for sure, but that may not be the case with points. These points came as a CSV file:

In [28]:
import pandas as pd 
infoairports=pd.read_csv(os.path.join("data","br-airports.csv"))

# see

infoairports
#EL QUE TENGA CORRDENADAS NO LO HAVE UN OBEJTO ESPACIAL
#Es importante porque en algun momneto mr van a dar coordenadas y tengo que saber como convetir 
Out[28]:
id ident type name latitude_deg longitude_deg elevation_ft continent country_name iso_country ... municipality scheduled_service gps_code iata_code local_code home_link wikipedia_link keywords score last_updated
0 #meta +id #meta +code #loc +airport +type #loc +airport +name #geo +lat #geo +lon #geo +elevation +ft #region +continent +code #country +name #country +code +iso2 ... #loc +municipality +name #status +scheduled #loc +airport +code +gps #loc +airport +code +iata #loc +airport +code +local #meta +url +airport #meta +url +wikipedia #meta +keywords #meta +score #date +updated
1 5910 SBGR large_airport Guarulhos - Governador André Franco Montoro In... -23.431944 -46.467778 2461 SA Brazil BR ... São Paulo 1 SBGR GRU SP0002 http://www.aeroportoguarulhos.net/ https://en.wikipedia.org/wiki/S%C3%A3o_Paulo-G... Cumbica 1016675 2021-10-28T15:52:55+00:00
2 5906 SBGL large_airport Rio Galeão – Tom Jobim International Airport -22.809999 -43.250557 28 SA Brazil BR ... Rio De Janeiro 1 SBGL GIG RJ0001 NaN https://en.wikipedia.org/wiki/Rio_de_Janeiro-G... Galeão - Antônio Carlos Jobim International Ai... 51475 2021-10-14T18:09:35+00:00
3 5974 SBSP medium_airport Congonhas Airport -23.627657 -46.654601 2631 SA Brazil BR ... São Paulo 1 SBSP CGH SP0001 http://www.infraero.gov.br/usa/aero_prev_home.... https://en.wikipedia.org/wiki/Congonhas-S%C3%A... http://www.infraero.gov.br/usa/aero_prev_home.... 750 2022-05-03T20:10:35+00:00
4 5967 SBRJ medium_airport Santos Dumont Airport -22.9105 -43.163101 11 SA Brazil BR ... Rio de Janeiro 1 SBRJ SDU RJ0002 https://www4.infraero.gov.br/aeroportos/aeropo... https://en.wikipedia.org/wiki/Santos_Dumont_Ai... RIO 750 2022-03-28T23:27:00+00:00
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
6862 309669 SSVR closed Volta Redonda Airport -22.4978 -44.085 1245 SA Brazil BR ... Volta Redonda 0 NaN NaN NaN NaN NaN SSVR, SSVR, QVR 0 2013-09-28T14:52:12+00:00
6863 505308 BR-1760 heliport Unimed Volta Redonda Helipad -22.533988 -44.076918 1385 SA Brazil BR ... Volta Redonda 0 SSKV NaN RJ0147 NaN NaN NaN 0 2022-12-06T21:28:25+00:00
6864 341727 BR-1429 heliport Santa Helena Heliport -23.59851 -47.441196 2254 SA Brazil BR ... Votorantim 0 SWHE NaN SP0807 NaN NaN NaN 0 2021-03-07T10:30:07+00:00
6865 343017 BR-1493 heliport Bandeiras Centro Empresarial Heliport -23.536615 -47.449475 1827 SA Brazil BR ... Votorantim 0 SWST NaN SP1306 NaN NaN NaN 0 2021-04-14T20:12:01+00:00
6866 509863 SN3D heliport Alphaville Nova Esplanada 2 Heliport -23.558971 -47.473779 2083 SA Brazil BR ... Votorantim 0 SN3D NaN SP1453 NaN NaN NaN 0 2023-06-30T14:01:13+00:00

6867 rows × 23 columns

This needs some cleaning, as the first row has column names, and some columns are not needed:

In [30]:
# bye first row 
infoairports.drop(index=0,inplace=True)
infoairports.reset_index(drop=True, inplace=True)

# keep the  columns needed
keep=['name','type','latitude_deg', 'longitude_deg','elevation_ft','region_name','municipality']
infoairports=infoairports.loc[:,keep]
infoairports.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 6866 entries, 0 to 6865
Data columns (total 7 columns):
 #   Column         Non-Null Count  Dtype 
---  ------         --------------  ----- 
 0   name           6866 non-null   object
 1   type           6866 non-null   object
 2   latitude_deg   6866 non-null   object
 3   longitude_deg  6866 non-null   object
 4   elevation_ft   6696 non-null   object
 5   region_name    6866 non-null   object
 6   municipality   6842 non-null   object
dtypes: object(7)
memory usage: 375.6+ KB

Some formatting is needed, because numeric data columns are not the right type:

In [31]:
numericCols=['latitude_deg', 'longitude_deg','elevation_ft']
infoairports[numericCols]=infoairports.loc[:,numericCols].apply(lambda x:pd.to_numeric(x))

# now 
infoairports.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 6866 entries, 0 to 6865
Data columns (total 7 columns):
 #   Column         Non-Null Count  Dtype  
---  ------         --------------  -----  
 0   name           6866 non-null   object 
 1   type           6866 non-null   object 
 2   latitude_deg   6866 non-null   float64
 3   longitude_deg  6866 non-null   float64
 4   elevation_ft   6696 non-null   float64
 5   region_name    6866 non-null   object 
 6   municipality   6842 non-null   object 
dtypes: float64(3), object(4)
memory usage: 375.6+ KB
In [32]:
# let's plot

base = brazil.plot(color='green', edgecolor='black') #unprojected

infoairports.plot.scatter(x = 'longitude_deg', y = 'latitude_deg',ax=base)
Out[32]:
<Axes: xlabel='longitude_deg', ylabel='latitude_deg'>

We get it wrong because coordinates of both do not match. Let's try this:

  1. Create a GeoDataFrame with the points, keeping them unprojected:
In [33]:
airports=gpd.GeoDataFrame(data=infoairports.copy(),
                 geometry=gpd.points_from_xy(infoairports.longitude_deg,
                                             infoairports.latitude_deg), 
                 crs=4326)# the coordinates were in degrees - unprojected
#simepre q alg diga longitud latitud es q est a no protyecatdi
#e 5341 es la proyeccion del mapa de brasil
  1. Reproject the GeoDataFrame:
In [34]:
airports=airports.to_crs(5641)

Does it look better?

In [38]:
# let's plot

base = brazil.plot(color='white', edgecolor='green')
airports.plot(ax=base,markersize=1)
Out[38]:
<Axes: >

Now we have a spatial points: wiii

In [39]:
#remember:
type(airports), type(infoairports)
Out[39]:
(geopandas.geodataframe.GeoDataFrame, pandas.core.frame.DataFrame)

Remember you have type of airports:

In [40]:
airports['type'].value_counts() # this will not work: airports.type.value_counts()
#recomendacon es no ponerle type como nmbre de columna porque de por si type es una funcion q te indica el tipo de dato
Out[40]:
type
small_airport     4713
heliport          1745
closed             272
medium_airport     124
large_airport       10
seaplane_base        2
Name: count, dtype: int64

We may use that in the future. For now, just give the type column a different name.

In [41]:
airports.rename(columns={'type':'kind'},inplace=True)

Let's play with this:

In [42]:
from folium import LayerControl


m = airports[airports.kind=='small_airport'].explore(color="red",name="small",show=False)
m = airports[airports.kind=='medium_airport'].explore(m=m, color="blue",name="medium",show=False)
m = airports[airports.kind=='large_airport'].explore(m=m, color="black",name="large",show=True)
m = airports[airports.kind=='seaplane_base'].explore(m=m, color="green",name="seaplane",show=False)
m = airports[airports.kind=='closed'].explore(m=m, color="white",name="closed",show=False)
m = airports[airports.kind=='heliport'].explore(m=m, color="orange",name="heliport",show=False)

LayerControl(collapsed=False).add_to(m) #optional

m
#lo q se nos ocurra q sean puntos, buscar un csv que diga COORDINATES, ej. colegios, hospitales, aeropuertos
Out[42]:
Make this Notebook Trusted to load map: File -> Trust Notebook

Exercise 3¶

1. Look for some points in a CSV file about your country. 2. Turn those points into a spatial object. 3. Save the layer.

Combing GeoDF rows¶

Let me divide Brazil municipalities using the centroid of Brazil:

In [45]:
centroBrazil=brazil.centroid# es una geoserie es un valor calculado
centroBrazil
Out[45]:
0    POINT (3884486.179 8756856.093)
dtype: geometry

Notice:

In [46]:
type(centroBrazil), type(centroBrazil.x)
Out[46]:
(geopandas.geoseries.GeoSeries, pandas.core.series.Series)

The previous values are complex structures, not simple values. Then:

In [47]:
type(centroBrazil.x[0]),type(centroBrazil.y[0])
#dependiendo de lo que me pide la funcion, si admite geoseries ponerle geoseries, avces puede funcionar con otro tipo de dato
#pero me puede mandar un warning y mejor ponerle su tipo de dato tla cual pide
Out[47]:
(numpy.float64, numpy.float64)

Let me now subset using geopandas' cx, which does subsetting by location:

In [48]:
fig, axs = plt.subplots(nrows=2,ncols=2,sharex=False, sharey=False,figsize=(8,8))

centroidX=centroBrazil.x[0]
centroidY=centroBrazil.y[0]

axs[0,0].set_title('LeftOf_Centroid, Above_Centroid',fontsize=5)
brazil_municipalities.cx[:centroidX,centroidY:].plot(ax=axs[0,0]) 

axs[0,1].set_title('RightOf_Centroid, Above_Centroid',fontsize=5)
brazil_municipalities.cx[centroidX:,centroidY:].plot(ax=axs[0,1]) 

axs[1,0].set_title('LeftOf_Centroid, Below_Centroid',fontsize=5)
brazil_municipalities.cx[:centroidX,:centroidY].plot(ax=axs[1,0]) 

axs[1,1].set_title('RightOf_Centroid, Below_Centroid',fontsize=5)
brazil_municipalities.cx[centroidX:,:centroidY].plot(ax=axs[1,1]) ;
In [46]:
#profesor dijo que se puede poner con ciudades o con minucipapldfaed

You can create a polygon with one of these:

In [50]:
#instead of:
brazil_municipalities.cx[:centroidX,centroidY:]#el cx es de geopandas solo lo entiende geopandas , pandas no
#el cx necesita un valor
Out[50]:
ADM0_EN ADM0_PT ADM0_PCODE ADM1_PT ADM1_PCODE ADM2_PT ADM2_PCODE ET_ID geometry
1 Brazil Brasil BR Rondônia BR11 Ariquemes BR1100023 1 POLYGON ((2839173.154 8911097.984, 2838718.204...
3 Brazil Brasil BR Rondônia BR11 Cacoal BR1100049 3 POLYGON ((2997393.730 8777661.276, 2997393.730...
8 Brazil Brasil BR Rondônia BR11 Espigão D'Oeste BR1100098 8 POLYGON ((3057637.194 8777929.305, 3056978.535...
9 Brazil Brasil BR Rondônia BR11 Guajará-Mirim BR1100106 9 MULTIPOLYGON (((2708460.048 8727087.796, 27089...
10 Brazil Brasil BR Rondônia BR11 Jaru BR1100114 10 POLYGON ((2871236.909 8863979.571, 2871101.103...
... ... ... ... ... ... ... ... ... ...
5305 Brazil Brasil BR Mato Grosso BR51 São Félix do Araguaia BR5107859 5305 POLYGON ((3974265.397 8773180.057, 3974197.494...
5310 Brazil Brasil BR Mato Grosso BR51 Tabaporã BR5107941 5310 POLYGON ((3505714.931 8812411.339, 3505972.962...
5313 Brazil Brasil BR Mato Grosso BR51 Terra Nova do Norte BR5108055 5313 POLYGON ((3647944.371 8863821.903, 3657430.408...
5321 Brazil Brasil BR Mato Grosso BR51 Nova Guarita BR5108808 5321 POLYGON ((3638016.966 8872883.250, 3638098.449...
5324 Brazil Brasil BR Mato Grosso BR51 Nova Monte Verde BR5108956 5324 POLYGON ((3449722.190 8896410.060, 3449477.739...

191 rows × 9 columns

Dissolve¶

Let's use dissolve:

In [48]:
# dissolving
brazil_municipalities.cx[:centroidX,centroidY:].dissolve()
Out[48]:
geometry ADM0_EN ADM0_PT ADM0_PCODE ADM1_PT ADM1_PCODE ADM2_PT ADM2_PCODE ET_ID
0 MULTIPOLYGON (((2121072.695 8774540.983, 21207... Brazil Brasil BR Rondônia BR11 Ariquemes BR1100023 1

The 191 rows from the previous GDF are now one, Notice that some columns may be meaningless. And the result is:

In [51]:
type(brazil_municipalities.cx[:centroidX,centroidY:].dissolve())
#algunas funcoines devuelven geoseries, esta devuelve un dataframe
Out[51]:
geopandas.geodataframe.GeoDataFrame

As a GeoDF we can plot:

In [50]:
brazil_municipalities.cx[:centroidX,centroidY:].dissolve().plot(edgecolor='red')
Out[50]:
<Axes: >

By default, dissolve combines all into one, but dissolving also allows combining by other column; for example:

In [51]:
# the municipalities by state
brazil_municipalities.cx[:centroidX,centroidY:].dissolve(by='ADM1_PT').plot(edgecolor='red')
#si no le idgo nada disucleve todo y si le digo disuelve por grupos junsta todas las geometrias 
#los ha juntado por estados
Out[51]:
<Axes: >

Unary Union¶

This operation is used to combine all the geometries in one GeoDF:

In [52]:
brazil_municipalities.cx[:centroidX,centroidY:].unary_union
Out[52]:

It looks like dissolve default behaviour, but:

In [53]:
type(brazil_municipalities.cx[:centroidX,centroidY:].unary_union)
#normalenete uno hace algo para combinarlo con otras cosas
#entnces para eso necesitamos usar estrufruas conocidas
#o sea puede ser que este mapa que me arrojo se vea bien, pero mejor converetilo a una estructura concocida
#el unary union es una geometria y calcula rapido te devuleve shaping
Out[53]:
shapely.geometry.multipolygon.MultiPolygon

The result is not a GeoDF. It is a shapely geometry. You could turn that into a GeoSeries:

In [54]:
gpd.GeoDataFrame(index=[0],
                 crs=brazil_municipalities.crs,
                 geometry=[brazil_municipalities.cx[:centroidX,centroidY:].unary_union])
#lo pongo como una lista por si hay mas geometrias
Out[54]:
geometry
0 MULTIPOLYGON (((2121072.695 8774540.983, 21207...

Notice that unary union erase all other columns; it only produces the geometry combined.

Let me use the dissolve this time:

In [55]:
# you create
Brazil_topLeft=brazil_municipalities.cx[:centroidX,centroidY:].dissolve()
# you get
Brazil_topLeft
#el disolve te devulve dataframe pero te agrag columnas q no sirven a vces 
Out[55]:
geometry ADM0_EN ADM0_PT ADM0_PCODE ADM1_PT ADM1_PCODE ADM2_PT ADM2_PCODE ET_ID
0 MULTIPOLYGON (((2121072.695 8774540.983, 21207... Brazil Brasil BR Rondônia BR11 Ariquemes BR1100023 1

Aside from the ADM0_EN and geometry column, the rest is meaningless, then:

In [ ]:
#por qué?
In [56]:
Brazil_topLeft['zone']='NW' # add column
Brazil_topLeft=Brazil_topLeft.loc[:,['ADM0_EN','zone','geometry']]   # keep some

# result
Brazil_topLeft
Out[56]:
ADM0_EN zone geometry
0 Brazil NW MULTIPOLYGON (((2121072.695 8774540.983, 21207...

We can do the same with the other parts:

In [54]:
Brazil_topRight=brazil_municipalities.cx[centroidX:,centroidY:].dissolve()
Brazil_bottomLeft=brazil_municipalities.cx[:centroidX,:centroidY].dissolve()
Brazil_bottomRight=brazil_municipalities.cx[centroidX:,:centroidY].dissolve()

Brazil_topRight['zone']='NE'
Brazil_topRight=Brazil_topRight.loc[:,['ADM0_EN','zone','geometry']] 

Brazil_bottomLeft['zone']='NE'
Brazil_bottomLeft=Brazil_bottomLeft.loc[:,['ADM0_EN','zone','geometry']] 

Brazil_bottomRight['zone']='NE'
Brazil_bottomRight=Brazil_bottomRight.loc[:,['ADM0_EN','zone','geometry']] 

Keep in mind that with CX you may not get a perfect partition:

In [55]:
brazil_municipalities
Out[55]:
ADM0_EN ADM0_PT ADM0_PCODE ADM1_PT ADM1_PCODE ADM2_PT ADM2_PCODE ET_ID geometry
0 Brazil Brasil BR Rondônia BR11 Alta Floresta D'Oeste BR1100015 0 POLYGON ((2880702.575 8678970.180, 2881137.154...
1 Brazil Brasil BR Rondônia BR11 Ariquemes BR1100023 1 POLYGON ((2839173.154 8911097.984, 2838718.204...
2 Brazil Brasil BR Rondônia BR11 Cabixi BR1100031 2 POLYGON ((3067184.343 8504324.153, 3067191.133...
3 Brazil Brasil BR Rondônia BR11 Cacoal BR1100049 3 POLYGON ((2997393.730 8777661.276, 2997393.730...
4 Brazil Brasil BR Rondônia BR11 Cerejeiras BR1100056 4 POLYGON ((2974496.868 8540812.592, 2974897.495...
... ... ... ... ... ... ... ... ... ...
5567 Brazil Brasil BR Goiás BR52 Vianópolis BR5222005 5567 POLYGON ((4414833.073 8123005.730, 4414826.282...
5568 Brazil Brasil BR Goiás BR52 Vicentinópolis BR5222054 5568 MULTIPOLYGON (((4227475.357 8023245.907, 42270...
5569 Brazil Brasil BR Goiás BR52 Vila Boa BR5222203 5569 POLYGON ((4542830.062 8359934.818, 4543400.447...
5570 Brazil Brasil BR Goiás BR52 Vila Propício BR5222302 5570 POLYGON ((4375754.947 8322581.505, 4376087.671...
5571 Brazil Brasil BR Distrito Federal BR53 Brasília BR5300108 5571 POLYGON ((4513061.426 8221825.541, 4512959.571...

5572 rows × 9 columns

Calculemos la diferencia:

In [56]:
# tuple with count of rows
rowsCX=(brazil_municipalities.cx[:centroBrazil.x[0],centroBrazil.y[0]:].shape[0],\
        brazil_municipalities.cx[centroBrazil.x[0]:,centroBrazil.y[0]:].shape[0],\
        brazil_municipalities.cx[:centroBrazil.x[0],:centroBrazil.y[0]].shape[0],\
        brazil_municipalities.cx[centroBrazil.x[0]:,:centroBrazil.y[0]].shape[0])

sum(rowsCX)
#como hay cosas(municipalidades) q se repiten entonces al sumar salen menos 5753
Out[56]:
5753
In [57]:
# coincidences:
len(set(brazil_municipalities.cx[:centroBrazil.x[0],centroBrazil.y[0]:].ADM2_PCODE). \
intersection(set(brazil_municipalities.cx[centroBrazil.x[0]:,centroBrazil.y[0]:].ADM2_PCODE)). \
intersection(set(brazil_municipalities.cx[:centroBrazil.x[0],:centroBrazil.y[0]].ADM2_PCODE)). \
intersection(set(brazil_municipalities.cx[centroBrazil.x[0]:,:centroBrazil.y[0]].ADM2_PCODE)))
Out[57]:
1

Adding up all the rows, we have more municipalities:

In [58]:
brazil_municipalities.shape[0]
Out[58]:
5572

There are some that are common:

In [62]:
base=Brazil_topLeft.plot(facecolor='grey', alpha=0.4)
Brazil_topRight.plot(ax=base,facecolor='orange', alpha=0.4)
Brazil_bottomLeft.plot(ax=base,facecolor='green', alpha=0.4)
Brazil_bottomRight.plot(ax=base,facecolor='red', alpha=0.4)
Out[62]:
<Axes: >

Exercise 4¶

1. Compute the centroid of your country. 2. Combine all the polygons to the north, and also all the polygons to the south; use unary union. 3. Detect the amount of duplicates after the combination. 4. Plot both maps so that duplicates appear.

Creating the convex hull¶

Some times you may have the need to create a polygon that serves as an envelope to a set of points:

In [63]:
Brazil_AirTopLeft=airports[airports.kind=='medium_airport'].cx[:centroidX,centroidY:]
Brazil_AirTopRight=airports[airports.kind=='medium_airport'].cx[centroidX:,centroidY:]
Brazil_AirBottomLeft=airports[airports.kind=='medium_airport'].cx[:centroidX,:centroidY]
Brazil_AirBottomRight=airports[airports.kind=='medium_airport'].cx[centroidX:,:centroidY]
In [64]:
base=Brazil_AirTopLeft.plot(facecolor='grey', alpha=0.4)
Brazil_AirTopRight.plot(ax=base,facecolor='orange', alpha=0.4)
Brazil_AirBottomLeft.plot(ax=base,facecolor='green', alpha=0.4)
Brazil_AirBottomRight.plot(ax=base,facecolor='red', alpha=0.4)
Out[64]:
<Axes: >

Notice we have simple points:

In [65]:
Brazil_AirBottomLeft
Out[65]:
name kind latitude_deg longitude_deg elevation_ft region_name municipality geometry
8 Cataratas International Airport medium_airport -25.594167 -54.489444 786.0 Paraná Foz do Iguaçu POINT (3721774.865 7071323.040)
15 Campo Grande Airport medium_airport -20.469998 -54.673988 1833.0 Mato Grosso do Sul Campo Grande POINT (3701243.952 7687543.733)
22 Marechal Rondon Airport medium_airport -15.652900 -56.116699 617.0 Mato Grosso Cuiabá POINT (3540739.278 8248021.581)
52 Coronel Adalberto Mendes da Silva Airport medium_airport -25.000323 -53.501208 2481.0 Paraná Cascavel POINT (3831718.226 7143997.144)
71 Maestro Marinho Franco Airport medium_airport -16.584292 -54.724803 1467.0 Mato Grosso Rondonópolis POINT (3695590.675 8140827.535)
83 Ponta Porã Airport medium_airport -22.549601 -55.702599 2156.0 Mato Grosso do Sul Ponta Porã POINT (3586808.785 7440288.417)
85 Santo Ângelo Airport medium_airport -28.282503 -54.169623 1056.0 Rio Grande do Sul Santo Ângelo POINT (3757355.633 6737578.539)
90 Brigadeiro Camarão Airport medium_airport -12.694400 -60.098301 2018.0 Rondônia Vilhena POINT (3097777.568 8585400.848)
106 Santa Maria Airport medium_airport -29.711399 -53.688202 287.0 Rio Grande do Sul Santa Maria POINT (3810914.745 6556752.132)
149 Corumbá International Airport medium_airport -19.011930 -57.672772 463.0 Mato Grosso do Sul Corumbá POINT (3367622.840 7858868.554)
155 Rubem Berta Airport medium_airport -29.782200 -57.038200 256.0 Rio Grande do Sul Uruguaiana POINT (3438220.327 6547725.745)
244 Comandante Gustavo Kraemer Airport medium_airport -31.390499 -54.112202 600.0 Rio Grande do Sul Bagé POINT (3763743.842 6340901.399)

In this situation, you can not make a convex hull:

In [66]:
Brazil_AirBottomLeft.convex_hull.plot()
Out[66]:
<Axes: >

You first need to dissolve, and then you create a hull, an envelope of convex angles:

In [67]:
Brazil_AirBottomLeft.dissolve().convex_hull.plot()
Out[67]:
<Axes: >

As we saw, the convex hull is a polygon:

In [68]:
Brazil_AirBottomLeft.dissolve().convex_hull
Out[68]:
0    POLYGON ((3763743.842 6340901.399, 3438220.327...
dtype: geometry

We can make hulls from any spatial object:

In [69]:
# SW of Brazil as convex hull
Brazil_bottomLeft.convex_hull.plot()
Out[69]:
<Axes: >

In this last case, what if we the polygons had not been previously combined?

In [70]:
brazil_municipalities.cx[:centroidX,:centroidY].convex_hull.plot(edgecolor='red')
Out[70]:
<Axes: >

That is, you get a convex hull for each geometry.

We can also use union before creating a convex hull:

In [59]:
# just the union
large_airport=airports[airports.kind=='large_airport']
large_airport.unary_union
Out[59]:
In [72]:
# hull of the union
large_airport.unary_union.convex_hull
Out[72]:

Let's turn the GS into a GDF:

In [73]:
LargeAirport_hull= gpd.GeoDataFrame(index=[0],
                                    crs=large_airport.crs,
                                    geometry=[large_airport.unary_union.convex_hull])
LargeAirport_hull['name']='large airports hull' # optional

# then

LargeAirport_hull
Out[73]:
geometry name
0 POLYGON ((4382272.317 6814299.684, 3103184.311... large airports hull

Let's use the GDF in plotting:

In [74]:
base=brazil.plot(facecolor='yellow')
large_airport.plot(ax=base)
LargeAirport_hull.plot(ax=base,facecolor='green',
                       edgecolor='white',alpha=0.4,
                       hatch='X')
#como aptrapo en una geomtria ese es el convex hull, basicamente para un conjunto de coordendas encontrar lo que le envulve
#no puede dejar a nadie a fuera inclye a los que no son convex hull
#ls importancia es que nos ayuda a visulizar en donde estan la maypr cantidad e aeropuertos 
Out[74]:
<Axes: >

Exercise 5¶

1. Select some points from your maps. 2. Create the convex hull for those points. 3. Turn the hull into a GDF. 4. Plot the hull on top of the country.

Spatial Overlay¶

We might need to create or find some geometries from the geometries we already have. Using a set theory approach, we will se the use of intersection, union, difference, and symmetric difference.

Let me create this GeoDFs:

In [75]:
# the north
MunisN_brazil=brazil_municipalities.cx[:,centroidY:]
# the south
MunisS_brazil=brazil_municipalities.cx[:,:centroidY]
# the west
MunisW_brazil=brazil_municipalities.cx[:centroidX,:]
# the east
MunisE_brazil=brazil_municipalities.cx[centroidX:,:]

Intersection¶

We keep what is common in both GeoDFs:

In [76]:
munisMidNS_brazil=MunisN_brazil.overlay(MunisS_brazil, how="intersection",keep_geom_type=True)
munisMidNS_brazil
C:\ProgramData\anaconda3\envs\SDS_Mi_ambiente_Romina\Lib\site-packages\geopandas\geodataframe.py:1815: FutureWarning: `unary_union` returned None due to all-None GeoSeries. In future, `unary_union` will return 'GEOMETRYCOLLECTION EMPTY' instead.
  merged_geom = block.unary_union
Out[76]:
ADM0_EN_1 ADM0_PT_1 ADM0_PCODE_1 ADM1_PT_1 ADM1_PCODE_1 ADM2_PT_1 ADM2_PCODE_1 ET_ID_1 ADM0_EN_2 ADM0_PT_2 ADM0_PCODE_2 ADM1_PT_2 ADM1_PCODE_2 ADM2_PT_2 ADM2_PCODE_2 ET_ID_2 geometry
0 Brazil Brasil BR Rondônia BR11 Cacoal BR1100049 3 Brazil Brasil BR Rondônia BR11 Cacoal BR1100049 3 POLYGON ((2997393.730 8770664.256, 2997393.730...
1 Brazil Brasil BR Rondônia BR11 Espigão D'Oeste BR1100098 8 Brazil Brasil BR Rondônia BR11 Espigão D'Oeste BR1100098 8 POLYGON ((3056978.535 8777571.933, 3056645.811...
2 Brazil Brasil BR Rondônia BR11 Presidente Médici BR1100254 17 Brazil Brasil BR Rondônia BR11 Presidente Médici BR1100254 17 POLYGON ((2914558.967 8738429.583, 2915047.868...
3 Brazil Brasil BR Rondônia BR11 Ministro Andreazza BR1101203 37 Brazil Brasil BR Rondônia BR11 Ministro Andreazza BR1101203 37 POLYGON ((2943634.994 8778259.184, 2949854.901...
4 Brazil Brasil BR Rondônia BR11 Vilhena BR1100304 21 Brazil Brasil BR Rondônia BR11 Vilhena BR1100304 21 MULTIPOLYGON (((3064936.757 8679749.203, 30646...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
60 Brazil Brasil BR Mato Grosso BR51 Cláudia BR5103056 5213 Brazil Brasil BR Mato Grosso BR51 Cláudia BR5103056 5213 MULTIPOLYGON (((3633698.340 8745495.507, 36341...
61 Brazil Brasil BR Mato Grosso BR51 Itaúba BR5104559 5236 Brazil Brasil BR Mato Grosso BR51 Itaúba BR5104559 5236 POLYGON ((3597587.572 8781564.662, 3598001.779...
62 Brazil Brasil BR Mato Grosso BR51 Nova Santa Helena BR5106190 5258 Brazil Brasil BR Mato Grosso BR51 Nova Santa Helena BR5106190 5258 POLYGON ((3708398.334 8822508.817, 3707916.224...
63 Brazil Brasil BR Mato Grosso BR51 Feliz Natal BR5103700 5226 Brazil Brasil BR Mato Grosso BR51 Feliz Natal BR5103700 5226 MULTIPOLYGON (((3771432.608 8649297.202, 37709...
64 Brazil Brasil BR Mato Grosso BR51 Marcelândia BR5105580 5249 Brazil Brasil BR Mato Grosso BR51 Marcelândia BR5105580 5249 POLYGON ((3876654.961 8801397.454, 3876573.477...

65 rows × 17 columns

This is similar to a spatial join:

In [77]:
MunisN_brazil.sjoin(MunisS_brazil, how="inner", predicate='contains')
Out[77]:
ADM0_EN_left ADM0_PT_left ADM0_PCODE_left ADM1_PT_left ADM1_PCODE_left ADM2_PT_left ADM2_PCODE_left ET_ID_left geometry index_right ADM0_EN_right ADM0_PT_right ADM0_PCODE_right ADM1_PT_right ADM1_PCODE_right ADM2_PT_right ADM2_PCODE_right ET_ID_right
3 Brazil Brasil BR Rondônia BR11 Cacoal BR1100049 3 POLYGON ((2997393.730 8777661.276, 2997393.730... 3 Brazil Brasil BR Rondônia BR11 Cacoal BR1100049 3
8 Brazil Brasil BR Rondônia BR11 Espigão D'Oeste BR1100098 8 POLYGON ((3057637.194 8777929.305, 3056978.535... 8 Brazil Brasil BR Rondônia BR11 Espigão D'Oeste BR1100098 8
9 Brazil Brasil BR Rondônia BR11 Guajará-Mirim BR1100106 9 MULTIPOLYGON (((2708460.048 8727087.796, 27089... 9 Brazil Brasil BR Rondônia BR11 Guajará-Mirim BR1100106 9
11 Brazil Brasil BR Rondônia BR11 Ji-Paraná BR1100122 11 POLYGON ((2933666.847 8920914.042, 2933571.782... 11 Brazil Brasil BR Rondônia BR11 Ji-Paraná BR1100122 11
17 Brazil Brasil BR Rondônia BR11 Presidente Médici BR1100254 17 POLYGON ((2914898.482 8739124.549, 2914558.967... 17 Brazil Brasil BR Rondônia BR11 Presidente Médici BR1100254 17
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
5247 Brazil Brasil BR Mato Grosso BR51 Luciara BR5105309 5247 POLYGON ((4154126.631 8815123.058, 4154004.406... 5247 Brazil Brasil BR Mato Grosso BR51 Luciara BR5105309 5247
5249 Brazil Brasil BR Mato Grosso BR51 Marcelândia BR5105580 5249 POLYGON ((3876675.331 8801946.860, 3876654.961... 5249 Brazil Brasil BR Mato Grosso BR51 Marcelândia BR5105580 5249
5258 Brazil Brasil BR Mato Grosso BR51 Nova Santa Helena BR5106190 5258 POLYGON ((3708961.928 8822632.357, 3708398.334... 5258 Brazil Brasil BR Mato Grosso BR51 Nova Santa Helena BR5106190 5258
5305 Brazil Brasil BR Mato Grosso BR51 São Félix do Araguaia BR5107859 5305 POLYGON ((3974265.397 8773180.057, 3974197.494... 5305 Brazil Brasil BR Mato Grosso BR51 São Félix do Araguaia BR5107859 5305
5310 Brazil Brasil BR Mato Grosso BR51 Tabaporã BR5107941 5310 POLYGON ((3505714.931 8812411.339, 3505972.962... 5310 Brazil Brasil BR Mato Grosso BR51 Tabaporã BR5107941 5310

65 rows × 18 columns

In [78]:
# keeping the overlay
munisMidWE_brazil=MunisW_brazil.overlay(MunisE_brazil, how="intersection",keep_geom_type=True)
munisMidWE_brazil.plot(edgecolor='white',linewidth=0.1)
C:\ProgramData\anaconda3\envs\SDS_Mi_ambiente_Romina\Lib\site-packages\geopandas\geodataframe.py:1815: FutureWarning: `unary_union` returned None due to all-None GeoSeries. In future, `unary_union` will return 'GEOMETRYCOLLECTION EMPTY' instead.
  merged_geom = block.unary_union
Out[78]:
<Axes: >

Union¶

Let me unite the previous two GeoDFs. First, take a look at each one:

In [79]:
munisMidNS_brazil.info()
<class 'geopandas.geodataframe.GeoDataFrame'>
RangeIndex: 65 entries, 0 to 64
Data columns (total 17 columns):
 #   Column        Non-Null Count  Dtype   
---  ------        --------------  -----   
 0   ADM0_EN_1     65 non-null     object  
 1   ADM0_PT_1     65 non-null     object  
 2   ADM0_PCODE_1  65 non-null     object  
 3   ADM1_PT_1     65 non-null     object  
 4   ADM1_PCODE_1  65 non-null     object  
 5   ADM2_PT_1     65 non-null     object  
 6   ADM2_PCODE_1  65 non-null     object  
 7   ET_ID_1       65 non-null     int64   
 8   ADM0_EN_2     65 non-null     object  
 9   ADM0_PT_2     65 non-null     object  
 10  ADM0_PCODE_2  65 non-null     object  
 11  ADM1_PT_2     65 non-null     object  
 12  ADM1_PCODE_2  65 non-null     object  
 13  ADM2_PT_2     65 non-null     object  
 14  ADM2_PCODE_2  65 non-null     object  
 15  ET_ID_2       65 non-null     int64   
 16  geometry      65 non-null     geometry
dtypes: geometry(1), int64(2), object(14)
memory usage: 8.8+ KB
In [80]:
munisMidWE_brazil.info()
<class 'geopandas.geodataframe.GeoDataFrame'>
RangeIndex: 115 entries, 0 to 114
Data columns (total 17 columns):
 #   Column        Non-Null Count  Dtype   
---  ------        --------------  -----   
 0   ADM0_EN_1     115 non-null    object  
 1   ADM0_PT_1     115 non-null    object  
 2   ADM0_PCODE_1  115 non-null    object  
 3   ADM1_PT_1     115 non-null    object  
 4   ADM1_PCODE_1  115 non-null    object  
 5   ADM2_PT_1     115 non-null    object  
 6   ADM2_PCODE_1  115 non-null    object  
 7   ET_ID_1       115 non-null    int64   
 8   ADM0_EN_2     115 non-null    object  
 9   ADM0_PT_2     115 non-null    object  
 10  ADM0_PCODE_2  115 non-null    object  
 11  ADM1_PT_2     115 non-null    object  
 12  ADM1_PCODE_2  115 non-null    object  
 13  ADM2_PT_2     115 non-null    object  
 14  ADM2_PCODE_2  115 non-null    object  
 15  ET_ID_2       115 non-null    int64   
 16  geometry      115 non-null    geometry
dtypes: geometry(1), int64(2), object(14)
memory usage: 15.4+ KB

The overlay combines the geometries, but not the attributes. Let me subset and show you:

In [81]:
keep=['ADM0_EN_1','ADM1_PT_1','ADM2_PT_1','geometry']
munisMidNS_brazil=munisMidNS_brazil.loc[:,keep]
munisMidWE_brazil=munisMidWE_brazil.loc[:,keep]
In [82]:
# now 
munisMidNS_brazil.overlay(munisMidWE_brazil,how="union",keep_geom_type=True)
#creo otracolumna ha duplicado pero el union solo trabaja con geometrias
Out[82]:
ADM0_EN_1_1 ADM1_PT_1_1 ADM2_PT_1_1 ADM0_EN_1_2 ADM1_PT_1_2 ADM2_PT_1_2 geometry
0 Brazil Mato Grosso São Félix do Araguaia Brazil Mato Grosso São Félix do Araguaia POLYGON ((3974842.572 8772389.594, 3975012.329...
1 Brazil Rondônia Cacoal NaN NaN NaN POLYGON ((2997393.730 8770664.256, 2997393.730...
2 Brazil Rondônia Espigão D'Oeste NaN NaN NaN POLYGON ((3056978.535 8777571.933, 3056645.811...
3 Brazil Rondônia Presidente Médici NaN NaN NaN POLYGON ((2914558.967 8738429.583, 2915047.868...
4 Brazil Rondônia Ministro Andreazza NaN NaN NaN POLYGON ((2943634.994 8778259.184, 2949854.901...
... ... ... ... ... ... ... ...
174 NaN NaN NaN Brazil Mato Grosso Pontal do Araguaia POLYGON ((3915767.038 8240179.071, 3916215.197...
175 NaN NaN NaN Brazil Mato Grosso Gaúcha do Norte POLYGON ((3822074.600 8649214.391, 3822339.421...
176 NaN NaN NaN Brazil Mato Grosso Querência MULTIPOLYGON (((3915882.473 8591396.795, 39154...
177 NaN NaN NaN Brazil Mato Grosso Tesouro POLYGON ((3872193.739 8238559.612, 3872628.318...
178 NaN NaN NaN Brazil Mato Grosso São José do Xingu POLYGON ((3981564.960 8856938.657, 3981517.428...

179 rows × 7 columns

As you see, geometries are fine, but not attributes. It is strictly NOT appending the GeoDFs:

In [83]:
# appending
pd.concat([munisMidNS_brazil,munisMidWE_brazil],ignore_index=True)
Out[83]:
ADM0_EN_1 ADM1_PT_1 ADM2_PT_1 geometry
0 Brazil Rondônia Cacoal POLYGON ((2997393.730 8770664.256, 2997393.730...
1 Brazil Rondônia Espigão D'Oeste POLYGON ((3056978.535 8777571.933, 3056645.811...
2 Brazil Rondônia Presidente Médici POLYGON ((2914558.967 8738429.583, 2915047.868...
3 Brazil Rondônia Ministro Andreazza POLYGON ((2943634.994 8778259.184, 2949854.901...
4 Brazil Rondônia Vilhena MULTIPOLYGON (((3064936.757 8679749.203, 30646...
... ... ... ... ...
175 Brazil Mato Grosso Gaúcha do Norte POLYGON ((3822074.600 8649214.391, 3822339.421...
176 Brazil Mato Grosso Querência MULTIPOLYGON (((3916636.195 8591168.612, 39162...
177 Brazil Mato Grosso São Félix do Araguaia POLYGON ((3974197.494 8772623.298, 3974842.572...
178 Brazil Mato Grosso Tesouro POLYGON ((3872193.739 8238559.612, 3872628.318...
179 Brazil Mato Grosso São José do Xingu POLYGON ((3981632.863 8858364.779, 3981422.364...

180 rows × 4 columns

You will append if you are interested in the keeping the attributes. But you just do the overlay if you are planing to combine final results:

In [84]:
munisMidNS_brazil.dissolve().overlay(munisMidWE_brazil.dissolve(), how="union",keep_geom_type=True).dissolve().plot()
Out[84]:
<Axes: >

Let me create an object to save the previous result:

In [85]:
muniMidBrazil=munisMidNS_brazil.dissolve().overlay(munisMidWE_brazil.dissolve(), how="union",keep_geom_type=True).dissolve()
muniMidBrazil
Out[85]:
geometry ADM0_EN_1_1 ADM1_PT_1_1 ADM2_PT_1_1 ADM0_EN_1_2 ADM1_PT_1_2 ADM2_PT_1_2
0 MULTIPOLYGON (((3873395.621 6740520.149, 38739... Brazil Rondônia Cacoal Brazil Pará Almeirim
In [86]:
# some cleaning

muniMidBrazil['zone']='middles'
muniMidBrazil=muniMidBrazil.loc[:,['ADM0_EN_1_1','zone','geometry']]   
muniMidBrazil
Out[86]:
ADM0_EN_1_1 zone geometry
0 Brazil middles MULTIPOLYGON (((3873395.621 6740520.149, 38739...

Difference¶

Here, you keep what belongs to the GeoDF to left that is not in the GeoDF to the right:

In [87]:
# with the municipalities
brazil_municipalities.overlay(muniMidBrazil, how='difference').plot()
Out[87]:
<Axes: >
In [88]:
# with the zones
Brazil_topLeft.overlay(muniMidBrazil, how='difference').plot()
Out[88]:
<Axes: >

Symmetric Difference¶

This is the opposite to intersection, you keep what is not in the intersection:

In [89]:
MunisN_brazil.overlay(MunisS_brazil, how="symmetric_difference",keep_geom_type=False).plot()
Out[89]:
<Axes: >
In [90]:
MunisW_brazil.overlay(MunisE_brazil, how="symmetric_difference",keep_geom_type=False).plot()
Out[90]:
<Axes: >

Exercise 6¶

1. Apply two of these operations to your maps. 2. Apply two of these operations to the next maps:
In [91]:
# hulls for the mid size airports:
Brazil_AirTopLeft_hull=Brazil_AirTopLeft.dissolve().convex_hull
Brazil_AirTopRight_hull=Brazil_AirTopRight.dissolve().convex_hull
Brazil_AirBottomLeft_hull=Brazil_AirBottomLeft.dissolve().convex_hull
Brazil_AirBottomRight_hull=Brazil_AirBottomRight.dissolve().convex_hull
In [92]:
base = brazil.plot(color='white', edgecolor='black') #unprojected
muniMidBrazil.plot(ax=base,facecolor='magenta',alpha=0.4) #unprojected
LargeAirport_hull.plot(ax=base,facecolor='purple',alpha=0.4)
Brazil_AirTopLeft_hull.plot(ax=base,facecolor='grey', alpha=0.4)
Brazil_AirTopRight_hull.plot(ax=base,facecolor='orange', alpha=0.4)
Brazil_AirBottomLeft_hull.plot(ax=base,facecolor='green', alpha=0.4)
Brazil_AirBottomRight_hull.plot(ax=base,facecolor='red', alpha=0.4)
Out[92]:
<Axes: >

Validity of Geometry¶

Geometries are created in a way that some issues may appear, especially in (multi) polygons. Let's check if our recent maps on states and municipalities are valid:

In [93]:
# non valid
brazil_municipalities[~brazil_municipalities.is_valid]
Out[93]:
ADM0_EN ADM0_PT ADM0_PCODE ADM1_PT ADM1_PCODE ADM2_PT ADM2_PCODE ET_ID geometry
5 Brazil Brasil BR Rondônia BR11 Colorado do Oeste BR1100064 5 POLYGON ((3071557.291 8521541.630, 3071367.162...
15 Brazil Brasil BR Rondônia BR11 Pimenta Bueno BR1100189 15 POLYGON ((3057168.663 8724320.552, 3056869.891...
16 Brazil Brasil BR Rondônia BR11 Porto Velho BR1100205 16 POLYGON ((2856305.059 9048717.998, 2857038.410...
22 Brazil Brasil BR Rondônia BR11 São Miguel do Guaporé BR1100320 22 POLYGON ((2753262.389 8765192.063, 2753595.113...
36 Brazil Brasil BR Rondônia BR11 Itapuã do Oeste BR1101104 36 POLYGON ((2801256.168 9023884.917, 2801099.991...
... ... ... ... ... ... ... ... ... ...
5464 Brazil Brasil BR Goiás BR52 Matrinchã BR5212956 5464 POLYGON ((4141197.917 8313421.144, 4140885.563...
5470 Brazil Brasil BR Goiás BR52 Monte Alegre de Goiás BR5213509 5470 POLYGON ((4616158.417 8544511.406, 4616233.111...
5471 Brazil Brasil BR Goiás BR52 Montes Claros de Goiás BR5213707 5471 MULTIPOLYGON (((4066884.969 8218654.089, 40667...
5496 Brazil Brasil BR Goiás BR52 Padre Bernardo BR5215603 5496 POLYGON ((4404321.702 8311359.407, 4404056.880...
5512 Brazil Brasil BR Goiás BR52 Pontalina BR5217708 5512 POLYGON ((4263830.576 8058646.220, 4264122.559...

256 rows × 9 columns

In [94]:
# see the invalid:
brazil_municipalities[~brazil_municipalities.is_valid].plot()
Out[94]:
<Axes: >

It is difficult to see what is wrong. Let's get some information:

In [100]:
# what is wrong?

from shapely.validation import explain_validity, make_valid

explain_validity(brazil_municipalities[~brazil_municipalities.is_valid].geometry)
Out[100]:
5       Ring Self-intersection[3068508.44978257 851673...
15      Ring Self-intersection[3065079.35271118 868017...
16      Ring Self-intersection[2697459.77578448 903418...
22      Ring Self-intersection[2708460.04757785 872708...
36      Ring Self-intersection[2793277.57533772 901160...
                              ...                        
5464    Ring Self-intersection[4134149.59432842 826732...
5470    Ring Self-intersection[4579443.31264052 849053...
5471    Ring Self-intersection[4016405.94439198 821413...
5496    Ring Self-intersection[4404321.70180657 831135...
5512    Ring Self-intersection[4261277.42674537 804649...
Name: geometry, Length: 256, dtype: object
In [101]:
# varieties?
brazil_municipalities['validity']=[x.split('[')[0] for x in brazil_municipalities.geometry.apply(lambda x: explain_validity(x))]
brazil_municipalities['validity'].value_counts()
Out[101]:
validity
Valid Geometry            5316
Ring Self-intersection     256
Name: count, dtype: int64
In [102]:
# solving the issue:
brazil_municipalities.drop(columns=['validity'],inplace=True)

brazil_municipalities_valid=brazil_municipalities.copy()

brazil_municipalities_valid['geometry'] = [make_valid(row)  if not row.is_valid else row for row in brazil_municipalities_valid['geometry'] ]
#any invalid?
brazil_municipalities_valid[~brazil_municipalities_valid.is_valid]
Out[102]:
ADM0_EN ADM0_PT ADM0_PCODE ADM1_PT ADM1_PCODE ADM2_PT ADM2_PCODE ET_ID geometry

The solution we got may help for some advanced techniques, but may also give us some extra trouble. Notice that once geopandas solved the problem, you have created collections:

In [103]:
[x for x in brazil_municipalities_valid["geometry"]]
Out[103]:
[<POLYGON ((2880702.575 8678970.18, 2881137.154 8678859.874, 2881660.006 8679...>,
 <POLYGON ((2839173.154 8911097.984, 2838718.204 8910885.753, 2838439.802 891...>,
 <POLYGON ((3067184.343 8504324.153, 3067191.133 8503935.715, 3066838.038 850...>,
 <POLYGON ((2997393.73 8777661.276, 2997393.73 8770664.256, 2997393.73 874828...>,
 <POLYGON ((2974496.868 8540812.592, 2974897.495 8540570.143, 2975467.879 854...>,
 <POLYGON ((3071367.162 8521146.506, 3071421.485 8520522.615, 3071278.889 852...>,
 <POLYGON ((3036268.147 8552904.635, 3035500.844 8552565.354, 3034896.508 855...>,
 <POLYGON ((2699327.106 8704013.071, 2699571.556 8703689.311, 2699659.83 8703...>,
 <POLYGON ((3057637.194 8777929.305, 3056978.535 8777571.933, 3056645.811 877...>,
 <MULTIPOLYGON (((2708460.048 8727087.796, 2708928.578 8727005.195, 2709071.1...>,
 <POLYGON ((2871236.909 8863979.571, 2871101.103 8863431.157, 2870931.346 886...>,
 <POLYGON ((2933666.847 8920914.042, 2933571.782 8920496.537, 2933789.072 892...>,
 <POLYGON ((2896999.274 9016600.705, 2899647.487 9016655.324, 2900340.097 901...>,
 <POLYGON ((2891125.672 8744030.161, 2890935.544 8743273.384, 2890881.221 874...>,
 <POLYGON ((2874761.07 8793553.686, 2873925.864 8791437.888, 2872581.387 8788...>,
 <POLYGON ((3056869.891 8723253.515, 3056469.263 8722923.071, 3056537.166 872...>,
 <POLYGON ((2857038.41 9047687.847, 2857262.49 9047360.376, 2857540.892 90471...>,
 <POLYGON ((2914898.482 8739124.549, 2914558.967 8738429.583, 2915047.868 873...>,
 <POLYGON ((2819413.406 8942412.693, 2831649.511 8942426.374, 2839207.105 894...>,
 <POLYGON ((2936396.544 8706995.636, 2936281.109 8706644.356, 2936029.868 870...>,
 <POLYGON ((2938440.421 8653920.446, 2933890.926 8653906.647, 2923882.037 865...>,
 <MULTIPOLYGON (((3065079.353 8680176.623, 3064936.757 8679749.203, 3064637.9...>,
 <POLYGON ((2753595.113 8765033.933, 2753961.789 8764800.175, 2754362.416 876...>,
 <POLYGON ((2625856.155 8889163.198, 2634255.745 8889149.497, 2634602.05 8888...>,
 <POLYGON ((2868418.938 8769110.687, 2868744.872 8768911.33, 2869118.338 8768...>,
 <POLYGON ((2898547.46 8667910.034, 2899002.41 8667572.098, 2899450.569 86672...>,
 <POLYGON ((2738602.15 8953342.055, 2738758.327 8952767.624, 2760996.531 8950...>,
 <POLYGON ((2698702.399 8907880.156, 2698539.432 8907441.962, 2698539.432 890...>,
 <POLYGON ((2880281.577 8720382.662, 2882305.084 8720396.432, 2884376.122 872...>,
 <POLYGON ((2811638.523 8856856.379, 2809112.534 8852557.082, 2802539.533 884...>,
 <POLYGON ((2716547.284 8861216.849, 2716893.589 8860880.92, 2717273.846 8860...>,
 <MULTIPOLYGON (((2793277.575 9011602.72, 2793827.589 9011411.528, 2793922.65...>,
 <POLYGON ((2908970.557 8731892.034, 2909092.783 8731203.793, 2909493.41 8731...>,
 <POLYGON ((3035731.714 8634580.833, 3032560.648 8634311.563, 3032696.454 863...>,
 <POLYGON ((2845080.707 9030178.196, 2845379.48 9029734.558, 2845399.851 9029...>,
 <POLYGON ((2751048.754 8834023.559, 2753785.242 8833900.061, 2756603.212 883...>,
 <POLYGON ((2801099.991 9023550.432, 2801493.828 9023277.381, 2801982.729 902...>,
 <POLYGON ((2940267.01 8778300.419, 2943634.994 8778259.184, 2949854.901 8778...>,
 <POLYGON ((2825144.412 8769358.163, 2822740.649 8767447.048, 2822496.199 876...>,
 <MULTIPOLYGON (((2749914.776 8834092.17, 2750193.177 8834407.775, 2750661.70...>,
 <POLYGON ((2847002.36 8788724.247, 2846771.49 8788421.954, 2845087.497 87862...>,
 <POLYGON ((2977335.209 8645156.374, 2977667.934 8644735.358, 2978034.609 864...>,
 <POLYGON ((2959368.099 8593153.054, 2959857 8593049.341, 2959558.227 8592717...>,
 <POLYGON ((2975956.78 8692500.289, 2976045.054 8692059.259, 2976214.811 8691...>,
 <POLYGON ((2951280.862 8692927.531, 2953874.753 8692886.185, 2953881.544 868...>,
 <POLYGON ((2710307.007 8682168.872, 2734025.494 8682051.685, 2733461.9 86813...>,
 <POLYGON ((2775167.869 8701223.114, 2775269.723 8700224.18, 2775690.721 8698...>,
 <POLYGON ((2861078.633 8792227.893, 2872581.387 8788105.918, 2872391.258 878...>,
 <POLYGON ((2891315.8 8894786.834, 2891050.979 8893697.794, 2890602.82 889262...>,
 <POLYGON ((2868901.049 8773784.92, 2869301.676 8773585.591, 2869654.771 8773...>,
 <POLYGON ((2928662.402 8964452.872, 2928017.324 8963714.529, 2927827.196 896...>,
 <POLYGON ((2889258.342 8881620.255, 2889434.889 8880880.262, 2889713.291 888...>,
 <POLYGON ((2359418.707 8905949.324, 2363024.352 8904353.914, 2369278.21 8901...>,
 <MULTIPOLYGON (((1971849.255 8812534.916, 1971448.628 8812672.223, 1971224.5...>,
 <MULTIPOLYGON (((2121072.695 8774540.983, 2120760.342 8774437.884, 2120461.5...>,
 <POLYGON ((2221209.12 8961677.178, 2220862.815 8961615.646, 2220441.817 8961...>,
 <POLYGON ((2259044.622 8848318.979, 2259044.622 8847907.485, 2258779.801 884...>,
 <POLYGON ((1765057.726 9156374.147, 1778359.906 9154815.642, 1779772.287 915...>,
 <POLYGON ((2175496.879 8772334.604, 2175286.38 8771750.336, 2174953.656 8771...>,
 <POLYGON ((2018254.105 9106196.577, 2038312.625 9089003.937, 2038591.027 908...>,
 <POLYGON ((1831195.162 9014340.763, 1831195.162 9013965.232, 1831229.114 901...>,
 <POLYGON ((1580307.482 9209489.7, 1581556.896 9209054.615, 1599286.346 92026...>,
 <MULTIPOLYGON (((2014417.591 8984061.655, 2014016.963 8983856.665, 2013657.0...>,
 <POLYGON ((1749881.425 9034730.325, 1756501.959 9033693.003, 1757669.889 903...>,
 <POLYGON ((2321481.35 8879105.587, 2321481.35 8876748.354, 2321481.35 887539...>,
 <MULTIPOLYGON (((1683519.909 9099117.263, 1683886.584 9098796.998, 1684042.7...>,
 <POLYGON ((2172285.071 8940305.796, 2172067.782 8939950.074, 2171904.815 893...>,
 <POLYGON ((1678135.208 9149404.709, 1682148.27 9148547.069, 1684049.551 9148...>,
 <GEOMETRYCOLLECTION (POLYGON ((2015062.668 8983453.514, 2014994.765 8983118....>,
 <POLYGON ((2314908.348 8925342.053, 2314548.463 8924904.066, 2314086.723 892...>,
 <POLYGON ((1991418.874 8820250.702, 1991065.779 8820387.978, 1990773.797 882...>,
 <POLYGON ((1842684.335 9147335.457, 1875094.395 9143564.283, 1888179.286 914...>,
 <POLYGON ((2214323.764 8845657.899, 2213889.186 8845218.939, 2213603.994 884...>,
 <POLYGON ((2221209.12 8961677.178, 2231910.619 8956925.218, 2232834.098 8956...>,
 <POLYGON ((2576171.594 9650917.382, 2576449.996 9650714.725, 2577040.751 964...>,
 <POLYGON ((2237166.304 9631325.506, 2235828.617 9630237.716, 2235237.861 962...>,
 <POLYGON ((2963897.223 9612791.008, 2964019.448 9612392.307, 2964352.173 961...>,
 <POLYGON ((2912032.979 9598362.46, 2912596.573 9598294.874, 2913397.827 9597...>,
 <MULTIPOLYGON (((3057372.372 9078806.465, 3057637.194 9078336.069, 3057481.0...>,
 <MULTIPOLYGON (((1941143.558 9359600.78, 1940763.302 9359899.092, 1940912.68...>,
 <POLYGON ((3229180.321 9607709.151, 3228141.406 9607290.157, 3227421.635 960...>,
 <MULTIPOLYGON (((2574867.858 9915504.918, 2574569.085 9915970.353, 2574969.7...>,
 <POLYGON ((3420530.728 9703522.244, 3420999.258 9703096.847, 3421501.739 970...>,
 <MULTIPOLYGON (((1941754.684 9361234.696, 1941870.119 9361709.27, 1942223.21...>,
 <POLYGON ((2992491.139 9577388.286, 2992151.625 9576468.912, 2992009.029 957...>,
 <POLYGON ((3403140.792 9678083.729, 3403317.339 9677806.828, 3403188.324 967...>,
 <POLYGON ((2200559.844 9098347.26, 2200627.747 9097788.489, 2200838.246 9097...>,
 <MULTIPOLYGON (((3175856.164 9327354.197, 3175645.665 9327788.336, 3175964.8...>,
 <POLYGON ((2943716.478 9691691.633, 2943825.122 9691137.891, 2943906.606 969...>,
 <MULTIPOLYGON (((2759916.875 9228154.04, 2759903.294 9228643.327, 2759862.55...>,
 <POLYGON ((2334600.193 9400165.027, 2333832.89 9398965.748, 2333187.812 9398...>,
 <POLYGON ((3122708.554 9635892.752, 3122321.508 9635541.432, 3122219.653 963...>,
 <POLYGON ((3180072.935 9651390.247, 3177275.335 9648303.08, 3179224.148 9647...>,
 <POLYGON ((2661994.085 9705743.742, 2662469.405 9705514.166, 2663026.209 970...>,
 <POLYGON ((2668431.281 9729759.293, 2668689.312 9728179.536, 2668499.184 972...>,
 <MULTIPOLYGON (((1846405.415 9150779.621, 1846778.881 9150677.525, 1846514.0...>,
 <POLYGON ((2049380.8 9204778.347, 2049469.074 9204098.462, 2051764.192 92022...>,
 <MULTIPOLYGON (((2441153.443 9700909.067, 2440868.251 9701185.918, 2440970.1...>,
 <POLYGON ((1767957.18 9213119.792, 1768004.712 9211671.866, 1767957.18 92024...>,
 <MULTIPOLYGON (((2887852.752 9107804.426, 2888002.138 9108247.255, 2888402.7...>,
 <MULTIPOLYGON (((1899070.913 9200698.896, 1899111.655 9200331.729, 1898901.1...>,
 <POLYGON ((3024561.685 9688044.994, 3026687.046 9686403.972, 3027332.124 968...>,
 <GEOMETRYCOLLECTION (POLYGON ((3214547.243 9712063.67, 3214581.195 9710868.5...>,
 <MULTIPOLYGON (((2288385.471 9240554.669, 2288650.292 9240391.611, 2288249.6...>,
 <POLYGON ((3328467.959 9707627.597, 3328834.635 9707472.299, 3329425.39 9707...>,
 <POLYGON ((2158663.747 9917407.129, 2159064.374 9917218.257, 2159444.631 991...>,
 <MULTIPOLYGON (((2309476.115 9564320.16, 2309401.422 9564915.128, 2309000.79...>,
 <MULTIPOLYGON (((2309903.904 9563508.833, 2310155.145 9563786.037, 2310223.0...>,
 <MULTIPOLYGON (((2381256.284 9169098.89, 2381066.156 9169377.843, 2380835.28...>,
 <POLYGON ((2999186.367 9680926.991, 2999906.137 9679853.178, 3000476.522 967...>,
 <POLYGON ((3069418.349 9634487.466, 3069941.201 9634480.71, 3070341.828 9634...>,
 <POLYGON ((3108659.442 9765650.482, 3109026.118 9764091.336, 3108802.038 976...>,
 <MULTIPOLYGON (((2886263.823 9106932.38, 2886032.954 9106618.984, 2885910.72...>,
 <POLYGON ((2517842.992 9803430.277, 2518820.794 9802978.152, 2520090.579 980...>,
 <POLYGON ((3401287.042 9611439.475, 3402129.039 9610358.236, 3402441.392 960...>,
 <MULTIPOLYGON (((3276291.361 9906958.361, 3276793.843 9907147.237, 3276739.5...>,
 <POLYGON ((3292425.093 9603809.734, 3292846.091 9603924.624, 3293246.719 960...>,
 <POLYGON ((3023903.027 9906283.803, 3023672.157 9905966.76, 3023495.609 9905...>,
 <MULTIPOLYGON (((2962892.26 9164594.584, 2963095.969 9164859.955, 2963584.87...>,
 <POLYGON ((3510420.603 9748141.305, 3509823.057 9747169.267, 3509524.285 974...>,
 <MULTIPOLYGON (((2343875.731 9193436.643, 2344276.358 9192994.618, 2344731.3...>,
 <MULTIPOLYGON (((3023495.609 9905278.71, 3023672.157 9905966.76, 3023903.027...>,
 <POLYGON ((3189171.925 9725843.625, 3189273.779 9724938.956, 3191141.109 972...>,
 <MULTIPOLYGON (((2573903.637 9915160.9, 2574114.136 9914870.845, 2574215.99 ...>,
 <POLYGON ((2140486.138 9697775.888, 2141389.246 9696871.033, 2141742.341 969...>,
 <POLYGON ((2405755.655 10081965.548, 2406000.105 10081344.971, 2406957.536 1...>,
 <POLYGON ((2148274.602 9642945.934, 2148607.326 9627095.9, 2148695.6 9621494...>,
 <POLYGON ((3355805.672 9719537.825, 3356172.347 9719436.552, 3356715.571 971...>,
 <MULTIPOLYGON (((3286537.911 9663630.012, 3286015.058 9663420.623, 3286239.1...>,
 <POLYGON ((2036329.86 9592029.456, 2035840.959 9590988.561, 2035521.816 9590...>,
 <MULTIPOLYGON (((2349015.981 9246845.588, 2348873.385 9246390.439, 2348662.8...>,
 <POLYGON ((2655740.226 9590366.721, 2655359.97 9585398.623, 2655237.745 9583...>,
 <POLYGON ((2315431.201 9709957.06, 2315139.218 9708998.271, 2314894.768 9708...>,
 <POLYGON ((2576171.594 9650917.382, 2575540.097 9651106.528, 2574772.794 965...>,
 <POLYGON ((3397158.545 9736807.233, 3398917.231 9735612.347, 3399772.807 973...>,
 <POLYGON ((3394741.202 9713711.124, 3392473.244 9711928.632, 3392772.017 971...>,
 <POLYGON ((3041292.963 10381404.361, 3041483.091 10381005.685, 3041584.945 1...>,
 <POLYGON ((2997482.004 10381316.517, 2997407.31 10365269.31, 2997407.31 1036...>,
 <POLYGON ((3062987.943 10396001.036, 3063055.846 10395068.408, 3063266.345 1...>,
 <POLYGON ((3122919.053 10394047.933, 3123177.084 10393628.933, 3123733.888 1...>,
 <POLYGON ((3091283.087 10221006.241, 3091201.603 10220365.087, 3090814.556 1...>,
 <POLYGON ((2995180.095 10220587.803, 2995146.143 10219919.655, 2995125.772 1...>,
 <POLYGON ((3174049.946 10171495.172, 3175075.28 10171825.792, 3175584.552 10...>,
 <MULTIPOLYGON (((2839159.573 10233343.843, 2839227.476 10233721.815, 2839594...>,
 <MULTIPOLYGON (((2839159.573 10233343.843, 2839594.152 10233917.55, 2839682....>,
 <POLYGON ((3139663.912 10460753.232, 3140662.084 10460489.477, 3141042.341 1...>,
 <POLYGON ((3048680.799 10465717.373, 3048415.978 10465250.704, 3048348.075 1...>,
 <MULTIPOLYGON (((3032839.05 10096751.721, 3032418.052 10096839.414, 3032363....>,
 <POLYGON ((3134903.917 10092245.663, 3134313.162 10091645.308, 3133912.535 1...>,
 <POLYGON ((3110859.496 10108266.684, 3110757.642 10107497.66, 3110581.094 10...>,
 <MULTIPOLYGON (((3139663.912 10460753.232, 3140044.168 10460861.439, 3140417...>,
 <POLYGON ((4384731.712 9812189.161, 4381696.451 9810117.563, 4379537.139 980...>,
 <POLYGON ((4422091.894 9456622.485, 4420109.129 9455078.905, 4409251.453 944...>,
 <POLYGON ((4411118.783 9837600.069, 4411166.315 9837114.279, 4411288.541 983...>,
 <POLYGON ((4175020.357 10013004.05, 4175298.759 10012430.738, 4176113.594 10...>,
 <POLYGON ((4167320.167 9278553.847, 4167809.068 9278764.314, 4168325.13 9279...>,
 <POLYGON ((3658075.486 10100138.042, 3659277.367 10099537.676, 3660567.523 1...>,
 <POLYGON ((3679193.292 10269045.774, 3678745.132 10268249.158, 3678914.89 10...>,
 <POLYGON ((3978305.62 9658219.547, 3978414.265 9657908.826, 3978950.698 9657...>,
 <POLYGON ((4209311.328 9947963.009, 4210065.05 9948205.831, 4210553.951 9948...>,
 <POLYGON ((4406494.595 9861713.009, 4405890.259 9861524.108, 4405034.682 986...>,
 <POLYGON ((4051640.766 9696540.152, 4052265.472 9696526.647, 4052598.197 969...>,
 <MULTIPOLYGON (((4617903.522 9887793.728, 4617414.621 9887550.875, 4616878.1...>,
 <POLYGON ((4498143.156 9764563.806, 4498197.478 9764179.08, 4498211.059 9763...>,
 <POLYGON ((3638954.026 9641554.25, 3644345.517 9641398.867, 3645384.432 9641...>,
 <POLYGON ((4193007.839 9800380.1, 4193367.724 9800224.891, 4193734.4 9800204...>,
 <POLYGON ((4289491.087 9705500.662, 4289491.087 9703407.455, 4288784.897 970...>,
 <POLYGON ((4179359.353 9196333.512, 4179284.66 9195891.513, 4179325.402 9195...>,
 <POLYGON ((4385553.337 9847261.704, 4386422.494 9845905.589, 4386768.799 984...>,
 <POLYGON ((4410161.352 9877735.432, 4410419.383 9877175.504, 4410521.238 987...>,
 <POLYGON ((3683620.561 9705845.025, 3683620.561 9705520.919, 3683620.561 970...>,
 <POLYGON ((4420631.981 9861072.094, 4419518.374 9855452.22, 4418717.119 9851...>,
 <POLYGON ((4375551.238 9467406.334, 4385152.71 9455302.32, 4385397.16 945486...>,
 <POLYGON ((4534145.28 9846445.337, 4534267.505 9846027.032, 4533832.926 9845...>,
 <MULTIPOLYGON (((4595753.592 9910283.915, 4596140.639 9909980.366, 4596480.1...>,
 <POLYGON ((3967977.587 9687302.147, 3967991.168 9686822.671, 3968235.618 968...>,
 <POLYGON ((4408993.422 9390482.085, 4409563.807 9389709.556, 4410283.578 938...>,
 <POLYGON ((4340662.722 9622670.175, 4340954.704 9621960.69, 4340988.655 9621...>,
 <POLYGON ((4168202.905 9920010.852, 4168331.92 9919592.639, 4168556 9919053....>,
 <POLYGON ((4432447.088 9829840.798, 4433194.02 9829820.556, 4433682.921 9829...>,
 <POLYGON ((4631151.38 9807465.618, 4630988.413 9806757.078, 4630886.559 9806...>,
 <POLYGON ((4331753.859 9950789.186, 4332222.39 9947187.326, 4332731.661 9944...>,
 <POLYGON ((4297021.52 9779513.431, 4297252.39 9778906.022, 4297422.147 97786...>,
 <POLYGON ((4251295.699 9256246.602, 4249604.916 9256484.323, 4249625.287 925...>,
 <POLYGON ((4553565.513 9888063.564, 4554522.944 9888158.007, 4554937.152 988...>,
 <POLYGON ((4557103.254 9823451.013, 4557069.303 9822951.698, 4557218.689 982...>,
 <POLYGON ((4464734.923 9882390.214, 4464687.391 9882039.421, 4464687.391 988...>,
 <MULTIPOLYGON (((4335766.922 9979900.359, 4335889.147 9979111.209, 4335502.1...>,
 <POLYGON ((4427293.257 9905879.068, 4426960.533 9905366.402, 4426627.808 990...>,
 <POLYGON ((4294475.161 9151249.26, 4294651.708 9150902.136, 4294984.432 9150...>,
 <POLYGON ((4456043.35 9804402.006, 4455663.094 9803619.225, 4455486.546 9803...>,
 <POLYGON ((4113031.789 9182894.953, 4112909.563 9182371.21, 4112889.192 9181...>,
 <POLYGON ((4281546.446 9346677.082, 4280351.355 9336504.35, 4280188.388 9335...>,
 <POLYGON ((4268536.248 9813781.645, 4268495.506 9813457.751, 4268352.91 9813...>,
 <POLYGON ((3652738.317 9822303.937, 3653057.461 9821858.6, 3653335.863 98216...>,
 <MULTIPOLYGON (((4461672.502 9926985.527, 4461536.696 9926688.735, 4461475.5...>,
 <POLYGON ((4440215.181 9577388.286, 4440615.808 9577624.888, 4440914.581 957...>,
 <POLYGON ((4348940.087 9339590.26, 4347391.9 9338247.4, 4344078.238 9335398....>,
 <POLYGON ((3426363.588 9840960.093, 3425962.961 9838753.817, 3425793.203 983...>,
 <POLYGON ((4311593.485 9203663.33, 4311661.388 9203051.42, 4311871.887 92026...>,
 <POLYGON ((4553314.272 9794563.038, 4553287.111 9793766.721, 4553321.062 979...>,
 <POLYGON ((4329261.823 9607763.215, 4329682.821 9607972.711, 4330287.157 960...>,
 <POLYGON ((4099471.577 9926897.839, 4098480.194 9926391.942, 4097821.536 992...>,
 <POLYGON ((4510168.762 9892016.641, 4509958.262 9891497.212, 4509713.812 989...>,
 <POLYGON ((4342978.211 9783738.243, 4343378.838 9783508.783, 4344037.496 978...>,
 <POLYGON ((4470438.768 9839462.257, 4464945.422 9836068.476, 4461475.583 983...>,
 <POLYGON ((4506053.845 9733931.39, 4506651.391 9733465.579, 4507119.921 9732...>,
 <MULTIPOLYGON (((4507133.501 9820070.494, 4507194.614 9820556.321, 4507574.8...>,
 <POLYGON ((3518012.149 9539611.966, 3518290.551 9539314.398, 3518623.275 953...>,
 <POLYGON ((4295731.364 9450089.123, 4295907.912 9449825.068, 4296240.636 944...>,
 <POLYGON ((3435014.419 9198931.03, 3434484.776 9199121.418, 3433914.392 9198...>,
 <POLYGON ((4330572.349 9516905.832, 4330572.349 9516310.532, 4330708.155 951...>,
 <POLYGON ((3564702.191 9779041.002, 3565136.77 9778892.524, 3567241.76 97784...>,
 <POLYGON ((4313386.122 9810326.748, 4313039.817 9810029.84, 4312483.013 9809...>,
 <POLYGON ((4510610.13 9770402.075, 4509978.633 9770300.835, 4508477.979 9770...>,
 <POLYGON ((4489777.517 9895254.625, 4489451.583 9895544.693, 4489254.665 989...>,
 <POLYGON ((4340099.127 9452729.62, 4341511.508 9451057.317, 4341341.751 9450...>,
 <POLYGON ((4501891.396 9927086.707, 4501755.591 9927471.188, 4501932.138 992...>,
 <POLYGON ((4484834.185 9921892.81, 4483998.979 9921427.38, 4483503.288 99210...>,
 <POLYGON ((4411118.783 9837600.069, 4410697.785 9837424.645, 4409984.805 983...>,
 <POLYGON ((3887268.186 9704582.356, 3887533.007 9703853.108, 3887587.329 970...>,
 <POLYGON ((4132513.134 9841715.755, 4132744.004 9841493.105, 4132900.181 984...>,
 <POLYGON ((4289491.087 9705500.662, 4286150.264 9705534.423, 4283678.598 970...>,
 <POLYGON ((4391352.246 9797660.544, 4391263.972 9797262.392, 4391230.02 9796...>,
 <POLYGON ((3748535.746 9638831.633, 3748114.748 9638628.954, 3747646.217 963...>,
 <POLYGON ((3780755.678 9890040.108, 3781230.998 9888137.769, 3781753.85 9886...>,
 <POLYGON ((4321615.955 9855971.709, 4321303.601 9855566.913, 4320964.087 985...>,
 <POLYGON ((4598877.126 9754270.407, 4601138.293 9750895.38, 4602326.594 9749...>,
 <POLYGON ((4332439.679 9465274.06, 4332453.259 9457076.075, 4331774.23 94569...>,
 <POLYGON ((4516707.812 9867791.51, 4516843.618 9857786.539, 4514052.808 9855...>,
 <POLYGON ((3642267.688 9249685.087, 3641901.012 9249725.844, 3641622.61 9249...>,
 <POLYGON ((4209440.343 9548944.281, 4210221.227 9548531.787, 4210900.256 954...>,
 <POLYGON ((3586240.995 10265663.559, 3586451.494 10265130.242, 3586865.702 1...>,
 <POLYGON ((4252585.854 9797127.426, 4251798.18 9795582.049, 4251404.343 9794...>,
 <MULTIPOLYGON (((3573135.733 9858690.577, 3573393.764 9858933.452, 3573638.2...>,
 <POLYGON ((4558583.538 9831379.178, 4558393.41 9830879.88, 4558216.862 98304...>,
 <POLYGON ((4105908.773 9283048.147, 4105732.226 9282593.302, 4105745.806 928...>,
 <POLYGON ((4103260.56 9656260.64, 4103796.993 9656172.826, 4104285.893 96562...>,
 <POLYGON ((4422125.845 9369817.137, 4423748.725 9368827.436, 4424224.045 936...>,
 <POLYGON ((4617346.718 9726518.748, 4617278.815 9726154.182, 4617292.396 972...>,
 <POLYGON ((4240580.619 9351776.369, 4241225.697 9351125.42, 4241626.324 9351...>,
 <POLYGON ((4240356.539 9146484.587, 4240546.668 9146219.112, 4240471.974 914...>,
 <POLYGON ((4531449.534 9889385.758, 4531008.165 9889399.25, 4532128.563 9880...>,
 <POLYGON ((4310323.7 9306369.255, 4310961.988 9306070.675, 4311593.485 93063...>,
 <POLYGON ((3744407.249 9623785.07, 3744420.829 9622913.425, 3744366.507 9622...>,
 <POLYGON ((4311138.535 9918176.105, 4311294.712 9917703.927, 4311328.663 991...>,
 <POLYGON ((4081382.241 9804415.502, 4081803.239 9804192.815, 4082068.061 980...>,
 <POLYGON ((3992592.393 9823052.911, 3993189.939 9823052.911, 3993536.244 982...>,
 <POLYGON ((3887512.636 9807323.91, 3887743.506 9806777.322, 3887865.731 9806...>,
 <POLYGON ((4553565.513 9888063.564, 4553096.983 9887665.555, 4552954.387 988...>,
 <POLYGON ((4561286.074 9904914.447, 4560878.656 9904968.412, 4560430.497 990...>,
 <POLYGON ((4221723.98 9127788.729, 4222090.656 9127019.217, 4222470.912 9126...>,
 <POLYGON ((4310928.036 9210033.551, 4310527.409 9209720.837, 4310303.329 920...>,
 <POLYGON ((4464198.49 9489483.678, 4453483.41 9481180.045, 4443583.166 94735...>,
 <POLYGON ((3696135.068 9582018.816, 3696427.051 9581640.27, 3696691.872 9581...>,
 <POLYGON ((4525922.237 9928091.754, 4525833.963 9927592.603, 4526085.204 992...>,
 <POLYGON ((4384086.634 9921359.926, 4384052.682 9920874.26, 4384154.537 9920...>,
 <POLYGON ((4417739.317 9879253.302, 4417773.269 9878720.362, 4417684.995 987...>,
 <POLYGON ((4309345.898 9943639.409, 4309644.671 9942890.702, 4309502.075 994...>,
 <POLYGON ((4439733.071 9866462.481, 4439936.779 9862994.835, 4440011.473 986...>,
 <POLYGON ((4575151.849 9828977.142, 4575484.573 9828882.679, 4575959.893 982...>,
 <POLYGON ((4240505.926 9075970.378, 4240872.602 9076113.551, 4241259.648 907...>,
 <POLYGON ((4507432.274 9848590.825, 4507486.596 9847518.083, 4507486.596 984...>,
 <POLYGON ((4236520.025 8992144.258, 4236601.508 8991618.222, 4235997.172 899...>,
 <POLYGON ((3719242.429 9766845.142, 3719486.88 9766325.432, 3723785.134 9759...>,
 <POLYGON ((4512592.895 9907558.716, 4512735.492 9907214.692, 4513258.344 990...>,
 <POLYGON ((4419952.952 9888738.154, 4420217.774 9888225.466, 4420523.337 988...>,
 <MULTIPOLYGON (((4444608.5 9924354.858, 4444520.226 9923916.412, 4444262.195...>,
 <POLYGON ((4392397.95 9380180.944, 4392296.096 9379591.289, 4391617.067 9379...>,
 <POLYGON ((4481595.216 9817783.048, 4482009.424 9817803.291, 4482321.777 981...>,
 <POLYGON ((4141068.901 9427356.492, 4140967.047 9426956.895, 4141143.594 942...>,
 <POLYGON ((4476393.853 9883152.512, 4476346.321 9882477.912, 4476638.303 988...>,
 <POLYGON ((4374349.356 9348236.749, 4373860.455 9347321.297, 4373880.826 934...>,
 <POLYGON ((4449090.092 9914155.827, 4449090.092 9913798.317, 4449124.043 991...>,
 <POLYGON ((4547970.313 9912307.566, 4547814.136 9911855.618, 4547651.169 991...>,
 <POLYGON ((4359729.859 9408003.851, 4359546.521 9407590.591, 4359729.859 940...>,
 <POLYGON ((4514650.354 9838288.27, 4515017.029 9837357.174, 4515499.14 98368...>,
 <POLYGON ((4273900.578 9868709.009, 4267103.497 9853367.508, 4266838.675 985...>,
 <POLYGON ((4275625.312 9256015.673, 4275869.763 9256368.859, 4276148.165 925...>,
 <MULTIPOLYGON (((4007476.711 9613034.282, 4008698.964 9612196.336, 4008909.4...>,
 <MULTIPOLYGON (((4355295.799 9975455.485, 4356049.521 9975192.435, 4356395.8...>,
 <POLYGON ((4388636.129 9717127.505, 4388588.597 9716432.082, 4388513.904 971...>,
 <POLYGON ((4468449.212 9882788.228, 4467681.909 9882612.832, 4467335.604 988...>,
 <POLYGON ((3543808.465 9781349.144, 3543577.595 9780849.724, 3543428.209 978...>,
 <POLYGON ((4437899.692 9769571.906, 4438911.445 9769463.916, 4441580.03 9769...>,
 <MULTIPOLYGON (((4534729.245 9846134.982, 4534267.505 9846027.032, 4534145.2...>,
 <POLYGON ((3611195.315 9476022.812, 3610237.884 9476056.653, 3609905.16 9475...>,
 <POLYGON ((4096056.061 9266365.79, 4096198.657 9265931.179, 4096022.109 9265...>,
 <POLYGON ((4264876.281 9549539.351, 4260319.996 9549573.162, 4242794.254 954...>,
 <POLYGON ((4550754.332 9606006.131, 4551107.427 9605438.452, 4550788.284 960...>,
 <POLYGON ((3792326.334 9680785.167, 3792414.608 9680096.306, 3792917.089 967...>,
 <MULTIPOLYGON (((4435672.476 9882248.547, 4443162.168 9883806.873, 4449198.7...>,
 <MULTIPOLYGON (((4631891.522 9889156.399, 4631531.637 9888758.391, 4631090.2...>,
 <POLYGON ((4026401.253 9656416.003, 4027256.83 9656882.09, 4028125.987 96567...>,
 <POLYGON ((4293293.65 9277698.395, 4301795.095 9266454.07, 4307166.215 92593...>,
 <MULTIPOLYGON (((3945875.189 10154539.704, 3945773.335 10154006.702, 3945420...>,
 <MULTIPOLYGON (((4169900.478 10233370.841, 4170470.862 10233519.33, 4171027....>,
 <POLYGON ((3902539.551 10223415.65, 3902919.807 10223307.664, 3903218.58 102...>,
 <POLYGON ((4145149.866 10236948.103, 4144660.965 10236772.612, 4144212.806 1...>,
 <POLYGON ((4213657.114 10133470.055, 4213568.841 10132869.63, 4213378.712 10...>,
 <POLYGON ((4121798.055 10109595.616, 4121933.86 10109150.389, 4121798.055 10...>,
 <MULTIPOLYGON (((4144362.192 10045716.89, 4144885.045 10045676.42, 4144518.3...>,
 <POLYGON ((3856419.893 10241639.156, 3856637.182 10240977.675, 3857452.017 1...>,
 <MULTIPOLYGON (((4161582.371 10083935.211, 4161358.291 10084178.047, 4161039...>,
 <POLYGON ((3959761.335 10048502.585, 3959869.98 10048124.863, 3960026.156 10...>,
 <POLYGON ((4093204.138 10432853.777, 4092796.721 10431596.275, 4092212.756 1...>,
 <POLYGON ((4072303.622 10081344.971, 4071991.268 10081129.118, 4071570.27 10...>,
 <POLYGON ((4123346.241 10201853.577, 4123678.965 10201698.366, 4124045.641 1...>,
 <POLYGON ((4083290.313 10005733.11, 4082937.218 10005402.613, 4082903.266 10...>,
 <POLYGON ((4120215.917 10175341.189, 4120684.447 10175253.472, 4121051.123 1...>,
 <POLYGON ((4023386.364 9873971.081, 4022714.125 9873539.324, 4022272.756 987...>,
 <POLYGON ((4345049.25 8914993.232, 4344546.768 8915739.375, 4342441.778 8919...>,
 <POLYGON ((4507119.921 9288757.148, 4506943.373 9288424.535, 4506685.342 928...>,
 <POLYGON ((4383271.799 8733543.753, 4382803.269 8733447.405, 4382395.851 873...>,
 <POLYGON ((4587822.532 8762318.105, 4588644.157 8761314.223, 4586919.423 875...>,
 <POLYGON ((4341307.799 8630783.206, 4341912.135 8630506.996, 4342353.504 863...>,
 <POLYGON ((4418832.554 9335168.203, 4418798.603 9334489.945, 4418296.121 933...>,
 <POLYGON ((4463465.138 9288302.35, 4463261.43 9288044.403, 4462996.608 92873...>,
 <POLYGON ((4461495.954 8902484.525, 4461353.358 8901998.331, 4461163.23 8901...>,
 <POLYGON ((4396567.189 9226896.824, 4396404.222 9226359.95, 4396064.708 9225...>,
 <POLYGON ((4300389.504 9041260.765, 4300667.906 9041015.125, 4300844.454 904...>,
 <POLYGON ((4292390.541 8603729.819, 4292146.091 8603342.764, 4292458.444 860...>,
 <POLYGON ((4423300.566 9222730.803, 4423259.824 9222255.053, 4422981.422 922...>,
 <POLYGON ((4391515.213 9250017.937, 4391820.776 9249705.466, 4391943.001 924...>,
 <POLYGON ((4415939.89 9411587.587, 4416272.614 9411242.094, 4417508.447 9410...>,
 <POLYGON ((4359431.086 9157313.309, 4359553.312 9156877.758, 4359757.02 9156...>,
 <POLYGON ((4557374.866 8622440.51, 4557395.237 8622102.056, 4557707.59 86220...>,
 <POLYGON ((4441980.657 9401940.192, 4442279.43 9401797.909, 4442680.057 9401...>,
 <POLYGON ((4633582.305 8583914.197, 4633989.722 8583858.866, 4634234.173 858...>,
 <POLYGON ((4471294.344 9361743.168, 4470886.927 9361946.555, 4470581.364 936...>,
 <POLYGON ((4495413.459 9225884.234, 4494917.767 9224259.969, 4494367.754 922...>,
 <POLYGON ((4386021.867 9142393.387, 4386076.189 9141767.081, 4386130.512 914...>,
 <POLYGON ((4506950.163 9163478.648, 4506495.214 9163369.774, 4506162.49 9163...>,
 <POLYGON ((4352233.378 8882901.502, 4351887.073 8883045.383, 4351513.607 888...>,
 <POLYGON ((4349286.391 9125704.889, 4349544.422 9125166.888, 4349863.566 912...>,
 <POLYGON ((4445606.672 9014654.841, 4445952.977 9014709.463, 4446095.573 901...>,
 <POLYGON ((4410853.962 9096861.73, 4410331.11 9096452.859, 4409998.385 90962...>,
 <POLYGON ((4392764.626 8784876.678, 4392431.902 8784649.933, 4391997.323 878...>,
 <POLYGON ((4436242.861 9416512.375, 4436840.407 9416180.454, 4436908.309 941...>,
 <POLYGON ((4476746.948 9334069.421, 4477133.995 9333777.765, 4477650.057 933...>,
 <POLYGON ((4585384.817 9070318.101, 4585242.221 9069868.068, 4584916.287 906...>,
 <MULTIPOLYGON (((4332208.809 8668441.068, 4332609.436 8668689.341, 4332955.7...>,
 <POLYGON ((4408586.005 9232727.329, 4408918.729 9232652.583, 4409339.727 923...>,
 <POLYGON ((4450556.795 9408315.487, 4450726.552 9407814.158, 4450448.15 9407...>,
 <POLYGON ((4253461.802 8981574.366, 4253000.062 8981157.525, 4252443.258 898...>,
 <POLYGON ((4528522.919 9005729.979, 4528169.824 9005299.733, 4528400.693 900...>,
 <POLYGON ((4320359.751 8872670.794, 4320481.976 8872197.904, 4320549.879 887...>,
 <POLYGON ((4485839.148 8727129.096, 4485492.843 8726950.127, 4485071.845 872...>,
 <POLYGON ((4392031.275 9128762.518, 4392139.919 9128367.557, 4392350.418 912...>,
 <POLYGON ((4619648.627 8570811.445, 4618093.65 8558609.478, 4617781.297 8558...>,
 <POLYGON ((4531639.662 8681376.124, 4532264.369 8681072.806, 4532861.915 868...>,
 <POLYGON ((4335271.23 9067924.692, 4335515.681 9067467.816, 4335800.873 9067...>,
 <POLYGON ((4325024.681 8831011.436, 4324834.553 8830284.095, 4324508.619 882...>,
 <POLYGON ((4348295.009 8765137.062, 4348464.766 8764717.671, 4348783.91 8764...>,
 <POLYGON ((4499752.455 9258060.047, 4499677.762 9254969.684, 4499874.68 9253...>,
 <POLYGON ((4653627.244 8708504.03, 4654061.823 8708393.83, 4654550.724 87082...>,
 <POLYGON ((4269975.79 8955974.755, 4270505.433 8955803.806, 4270783.834 8955...>,
 <POLYGON ((4307641.535 9007539.694, 4308144.017 9007717.247, 4308612.547 900...>,
 <MULTIPOLYGON (((4249503.062 8747311.616, 4248980.209 8747222.189, 4248837.6...>,
 <POLYGON ((4389491.706 9425250.117, 4389851.591 9424525.401, 4390136.783 942...>,
 <POLYGON ((4355974.828 8799707.971, 4355574.201 8798821.989, 4355350.121 879...>,
 <POLYGON ((4335692.228 8666620.34, 4335570.003 8666275.492, 4335556.423 8665...>,
 <POLYGON ((4501511.14 9187696.804, 4501646.946 9187329.54, 4501789.542 91869...>,
 <GEOMETRYCOLLECTION (POLYGON ((4268305.378 8728560.806, 4268285.007 8728223....>,
 <POLYGON ((4400003.077 9004049.944, 4400661.735 9004029.456, 4402019.793 900...>,
 <MULTIPOLYGON (((4301448.79 9040264.547, 4300844.454 9040598.897, 4300667.90...>,
 <POLYGON ((4528957.497 9133236.23, 4528903.175 9132664.273, 4529561.833 9132...>,
 <POLYGON ((4411166.315 9054625.531, 4411485.459 9054761.954, 4411811.393 905...>,
 <POLYGON ((4380236.539 8732160.444, 4379835.912 8731857.623, 4379543.929 873...>,
 <POLYGON ((4407648.945 8767804.531, 4407356.962 8767027.688, 4407805.121 876...>,
 <POLYGON ((4454597.018 9094572.006, 4454610.599 9094238.078, 4454366.148 909...>,
 <POLYGON ((4505795.814 9354522.484, 4505931.62 9353810.54, 4505985.942 93533...>,
 <POLYGON ((4454597.018 9094572.006, 4454216.762 9094585.636, 4453843.296 909...>,
 <POLYGON ((4365494.817 9088724.493, 4365827.541 9088465.494, 4366139.894 908...>,
 <POLYGON ((4364761.465 8618841.642, 4365216.415 8618765.653, 4365576.3 86185...>,
 <POLYGON ((4331285.329 9103559.852, 4331543.36 9103260.059, 4331631.634 9102...>,
 <POLYGON ((4270362.836 8796033.396, 4270084.434 8795648.744, 4269982.58 8794...>,
 <POLYGON ((4514263.307 8847790.894, 4514609.612 8847276.518, 4514752.208 884...>,
 <POLYGON ((4418676.377 8894985.461, 4418486.249 8894540.262, 4418785.022 889...>,
 <POLYGON ((4634750.235 8577342.825, 4634682.332 8576830.886, 4634356.398 857...>,
 <MULTIPOLYGON (((4554067.994 8888601.471, 4554000.091 8888964.539, 4554577.2...>,
 <POLYGON ((4458460.694 9318643.617, 4459071.82 9318718.246, 4459628.624 9318...>,
 <POLYGON ((4287616.966 8893026.545, 4287365.726 8892711.465, 4286951.518 889...>,
 <POLYGON ((4611853.373 8866227.979, 4612342.274 8866159.432, 4612797.223 886...>,
 <POLYGON ((4507133.501 9342777.737, 4506651.391 9341102.637, 4506026.684 933...>,
 <POLYGON ((4402834.628 8962907.806, 4402821.047 8962470.254, 4402800.677 896...>,
 <POLYGON ((4381105.696 8976537.806, 4381193.97 8976155.083, 4381214.341 8975...>,
 <POLYGON ((4459750.849 8854216.522, 4459811.962 8853702.241, 4459737.269 885...>,
 <POLYGON ((4344879.492 8882182.091, 4344356.64 8882216.349, 4344315.898 8881...>,
 <POLYGON ((4503093.278 9271024.054, 4503324.148 9270623.432, 4503371.68 9270...>,
 <POLYGON ((4352043.25 9237293.42, 4352878.455 9236729.475, 4357876.11 923336...>,
 <POLYGON ((4509089.105 8746431.091, 4509856.408 8746128.405, 4510277.406 874...>,
 <POLYGON ((4469841.222 9304855.982, 4470214.688 9304801.694, 4470404.816 930...>,
 <POLYGON ((4426783.985 9165798.949, 4426695.711 9165240.998, 4426559.906 916...>,
 <POLYGON ((4334958.877 8847262.801, 4334592.201 8847118.775, 4334402.073 884...>,
 <POLYGON ((4532373.014 8886861.432, 4533228.591 8886895.686, 4533622.427 888...>,
 <POLYGON ((4616511.512 8558124.888, 4616538.674 8557612.599, 4615669.516 855...>,
 <POLYGON ((4650123.454 8705886.679, 4649736.407 8704081.956, 4649396.893 870...>,
 <POLYGON ((4356640.277 8810997.039, 4356307.553 8810770.471, 4355872.974 881...>,
 <POLYGON ((4434069.968 9163601.13, 4434382.321 9163213.269, 4434782.948 9162...>,
 <POLYGON ((4419043.053 8569178.363, 4419416.519 8568873.88, 4419742.453 8568...>,
 <POLYGON ((4352233.378 8882901.502, 4352321.652 8882517.818, 4352579.683 888...>,
 <POLYGON ((4457190.909 8637287.207, 4457387.828 8637770.462, 4457611.907 863...>,
 <POLYGON ((4377914.259 9161872.743, 4378233.403 9162117.715, 4378566.127 916...>,
 <POLYGON ((4478641.439 8980679.177, 4478240.812 8980467.335, 4478261.183 897...>,
 <POLYGON ((4392194.242 8717284.324, 4392574.498 8717112.185, 4392805.368 871...>,
 <POLYGON ((4356327.923 9101951.85, 4356504.471 9101529.399, 4356572.374 9101...>,
 <POLYGON ((4368333.158 9036108.832, 4368176.982 9035829.04, 4367688.081 9035...>,
 <POLYGON ((4489974.435 8777771.237, 4490354.692 8777805.6, 4490599.142 87774...>,
 <POLYGON ((4426872.259 9277698.395, 4427530.917 9277229.928, 4427843.271 927...>,
 <POLYGON ((4225397.528 8967098.482, 4225030.852 8966455.896, 4224637.015 896...>,
 <MULTIPOLYGON (((4627871.67 8685215.59, 4628272.297 8685105.307, 4628598.231...>,
 <MULTIPOLYGON (((4489641.711 8777386.373, 4489954.065 8777118.339, 4489662.0...>,
 <POLYGON ((4563587.983 8737335.498, 4563302.79 8736716.188, 4563479.338 8736...>,
 <POLYGON ((4403642.673 8883113.897, 4403377.851 8882730.215, 4403099.449 888...>,
 <POLYGON ((4479205.033 9400639.312, 4479205.033 9400185.354, 4478919.841 939...>,
 <POLYGON ((4390136.783 9065790.287, 4390781.861 9066260.82, 4391392.987 9067...>,
 <POLYGON ((4363179.327 8843421.886, 4362371.283 8843332.717, 4361821.269 884...>,
 <POLYGON ((4571926.46 9053077.101, 4571525.833 9053042.994, 4571491.882 9052...>,
 <POLYGON ((4446217.799 9289435.944, 4446462.249 9289076.183, 4446767.812 928...>,
 <POLYGON ((4594653.565 8751321.826, 4595088.144 8751156.75, 4595420.868 8750...>,
 <POLYGON ((4402630.919 8992957.209, 4403140.191 8992724.939, 4403520.447 899...>,
 <POLYGON ((4516341.136 8969080.862, 4516741.763 8968841.615, 4517556.598 896...>,
 <POLYGON ((4450780.874 9420163.396, 4451738.305 9419987.285, 4451982.756 941...>,
 <POLYGON ((4252538.322 8644107.273, 4252952.53 8643755.263, 4253251.303 8643...>,
 <POLYGON ((4358786.009 9219570.381, 4359145.894 9219726.707, 4359444.667 921...>,
 <POLYGON ((4441770.158 9040332.782, 4442048.56 9040578.427, 4442394.865 9040...>,
 <POLYGON ((4330103.819 8801479.865, 4330409.382 8801294.439, 4330816.799 880...>,
 <POLYGON ((4465834.95 8753213.261, 4466154.094 8753027.561, 4466391.754 8752...>,
 <POLYGON ((4470248.639 8870313.134, 4470180.736 8869943.022, 4470241.849 886...>,
 <POLYGON ((4489954.065 9289435.944, 4489641.711 9289042.243, 4489220.713 928...>,
 <POLYGON ((4471294.344 9361743.168, 4471694.971 9361865.2, 4471762.874 93614...>,
 <MULTIPOLYGON (((4554923.571 8889272.802, 4555093.328 8888902.887, 4555690.8...>,
 <POLYGON ((4498496.251 9389228.415, 4498733.911 9389018.339, 4499419.73 9388...>,
 <POLYGON ((4409007.003 8633552.07, 4409339.727 8633268.981, 4409672.451 8633...>,
 <POLYGON ((4418710.329 9420630.767, 4419328.245 9420000.832, 4420645.562 941...>,
 <POLYGON ((4410487.286 8721628.796, 4410833.591 8721188.18, 4411044.09 87208...>,
 <POLYGON ((4474234.54 8782162.499, 4474030.832 8781681.481, 4473976.509 8781...>,
 <POLYGON ((4471776.455 9383501.886, 4472129.55 9383156.245, 4473154.884 9382...>,
 <POLYGON ((4344512.817 8679163.214, 4344180.092 8678846.086, 4344125.77 8678...>,
 <POLYGON ((4624979.006 8652223.04, 4624979.006 8651864.226, 4624958.635 8651...>,
 <POLYGON ((4568639.959 8639082.113, 4568572.056 8638529.846, 4568239.332 863...>,
 <POLYGON ((4364761.465 8618841.642, 4363994.162 8618454.789, 4364007.743 861...>,
 <POLYGON ((4418832.554 8893307.375, 4419083.795 8893067.642, 4419165.278 889...>,
 <POLYGON ((4432311.282 8953082.194, 4432548.942 8953328.378, 4432793.393 895...>,
 <POLYGON ((4507140.292 9328188.554, 4506977.325 9327455.949, 4506787.196 932...>,
 <POLYGON ((4429730.972 9021133.864, 4429384.667 9020799.356, 4429065.523 902...>,
 <POLYGON ((4426437.68 9095703.254, 4426383.358 9095212.596, 4426084.585 9094...>,
 <POLYGON ((4470975.201 9234969.656, 4473277.109 9226251.215, 4464463.311 922...>,
 <POLYGON ((4406358.789 9293739.318, 4406060.016 9293359.223, 4405645.809 929...>,
 <POLYGON ((4572680.183 9513780.463, 4572849.94 9513273.086, 4572578.328 9512...>,
 <POLYGON ((4974332.699 9531002.348, 4974414.183 9530603.295, 4974291.957 953...>,
 <POLYGON ((5102431.543 9677577.203, 5101752.514 9677408.36, 5101161.759 9677...>,
 <MULTIPOLYGON (((4841888.069 9731764.344, 4841501.022 9731629.325, 4841331.2...>,
 <POLYGON ((4976614.237 9517115.538, 4976994.493 9516905.832, 4979418.627 951...>,
 <POLYGON ((4730466.18 9550026.224, 4730425.438 9549350.011, 4730024.811 9548...>,
 <POLYGON ((4858897.748 9526835.871, 4858565.024 9526639.717, 4858211.929 952...>,
 <POLYGON ((4706136.566 9599051.834, 4705314.941 9594165.286, 4703970.464 958...>,
 <POLYGON ((4673095.009 9025413.959, 4673210.444 9024635.793, 4673020.316 902...>,
 <POLYGON ((4664430.598 9831608.585, 4665109.627 9831190.255, 4673475.266 982...>,
 <POLYGON ((4614521.957 9463290.651, 4639822.582 9463046.952, 4656295.829 946...>,
 <POLYGON ((4840109.012 9644452.446, 4839884.933 9644155.199, 4839484.306 964...>,
 <POLYGON ((4984579.249 9616811.713, 4985027.408 9616568.448, 4985360.132 961...>,
 <MULTIPOLYGON (((4769809.127 9836264.143, 4770264.077 9836129.2, 4770685.075...>,
 <POLYGON ((4706428.549 9679103.529, 4707820.559 9665203.796, 4708085.38 9662...>,
 <POLYGON ((5130611.252 9695176.102, 5129341.467 9694257.724, 5129063.065 969...>,
 <POLYGON ((4713592.306 9454740.396, 4713279.953 9454469.587, 4713035.502 945...>,
 <POLYGON ((4805722.978 9635122.549, 4808846.512 9630595.809, 4811773.127 962...>,
 <POLYGON ((4883240.942 9689422.625, 4883308.845 9688652.774, 4883315.635 968...>,
 <POLYGON ((4819249.238 9573190.191, 4819303.56 9572791.328, 4819194.915 9572...>,
 <POLYGON ((4857410.674 9694169.938, 4857553.271 9693764.768, 4857709.447 969...>,
 <MULTIPOLYGON (((4736129.283 9812162.169, 4736108.912 9811791.038, 4735755.8...>,
 <POLYGON ((4827003.75 9713076.452, 4826833.993 9712549.806, 4826704.978 9712...>,
 <MULTIPOLYGON (((4551508.055 9002916.222, 4551053.105 9003510.406, 4551453.7...>,
 <POLYGON ((5012616.361 9279477.177, 5012881.182 9279124.141, 5013770.711 927...>,
 <MULTIPOLYGON (((4798987.009 9418043.254, 4799292.572 9417704.567, 4799611.7...>,
 <POLYGON ((5039872.59 9709747.747, 5037502.778 9701395.244, 5036667.573 9698...>,
 <POLYGON ((4949133.928 9670026.334, 4953126.62 9668857.866, 4953472.924 9668...>,
 <POLYGON ((4741575.096 9591252.165, 4742260.916 9590833.101, 4743184.395 959...>,
 <POLYGON ((4852243.263 9231714.853, 4852290.795 9231395.477, 4852779.696 923...>,
 <POLYGON ((4813321.313 9747884.795, 4813640.457 9747601.284, 4814000.343 974...>,
 <POLYGON ((4805397.044 9494768.576, 4805573.591 9490701.74, 4808153.902 9485...>,
 <POLYGON ((4658624.899 9809213.341, 4653959.969 9799482.583, 4653661.196 979...>,
 <POLYGON ((4717130.048 9613912.766, 4717238.693 9613601.919, 4716994.242 961...>,
 <POLYGON ((4611350.891 9524076.143, 4611799.05 9523744.699, 4611928.066 9523...>,
 <POLYGON ((4776904.982 9544968.026, 4777319.189 9544575.8, 4777597.591 95440...>,
 <POLYGON ((5040585.571 9598321.908, 5040218.895 9598234.047, 5039872.59 9598...>,
 <POLYGON ((4711310.768 9535926.101, 4711290.397 9535493.255, 4711602.751 953...>,
 <POLYGON ((4998119.089 9586716.715, 5001500.654 9584911.938, 5012270.056 957...>,
 <POLYGON ((4913097.853 9383922.075, 4913423.787 9383508.663, 4913722.56 9383...>,
 <POLYGON ((4635782.359 9524177.605, 4636060.761 9524022.03, 4636352.743 9523...>,
 <POLYGON ((4565434.942 9407278.95, 4565550.377 9406615.016, 4565516.425 9406...>,
 <MULTIPOLYGON (((4883784.166 9662859.999, 4883349.587 9662670.872, 4883274.8...>,
 <MULTIPOLYGON (((4825801.869 9662447.972, 4825346.919 9662393.935, 4824552.4...>,
 <MULTIPOLYGON (((4766868.931 9616602.234, 4766604.11 9617034.705, 4766624.48...>,
 <POLYGON ((4527979.695 9323731.73, 4528292.049 9323263.642, 4528611.192 9322...>,
 <MULTIPOLYGON (((4710923.722 9856484.451, 4711623.122 9856059.415, 4711813.2...>,
 <POLYGON ((4878956.269 9608959.366, 4879180.348 9609371.595, 4879560.604 960...>,
 <POLYGON ((4852922.292 9464996.521, 4852847.599 9465375.598, 4849574.678 946...>,
 <MULTIPOLYGON (((4560165.676 9145558.823, 4559873.693 9146287.183, 4560233.5...>,
 <MULTIPOLYGON (((4664430.598 9880730.69, 4664450.969 9881277.119, 4664729.37...>,
 <POLYGON ((5014762.093 9494714.443, 5014605.916 9494261.078, 5014273.192 949...>,
 <POLYGON ((4828192.051 9776948.801, 4827825.376 9776969.048, 4827390.797 977...>,
 <POLYGON ((4801445.094 9758462.092, 4801424.723 9757496.866, 4801227.805 975...>,
 <POLYGON ((4667622.035 9762086.699, 4667289.31 9761634.471, 4667112.763 9761...>,
 <MULTIPOLYGON (((4595475.19 9682885.495, 4595094.934 9682750.427, 4595006.66...>,
 <POLYGON ((4956976.715 9607344.221, 4956834.119 9606945.499, 4956766.216 960...>,
 <POLYGON ((4493315.259 9436099.637, 4493715.886 9434569.157, 4494055.4 94332...>,
 <POLYGON ((4952237.091 9532875.842, 4959013.802 9524164.077, 4953506.876 952...>,
 <POLYGON ((4979921.109 9554658.142, 4980172.35 9554225.389, 4980566.186 9554...>,
 <POLYGON ((4885019.999 9347314.516, 4889182.447 9343727.166, 4899340.723 933...>,
 <MULTIPOLYGON (((4800379.018 9590724.955, 4800304.325 9591089.947, 4799958.0...>,
 <GEOMETRYCOLLECTION (POLYGON ((4890126.298 9573426.803, 4890296.055 9572960....>,
 <MULTIPOLYGON (((4818923.304 9799516.325, 4818828.24 9800224.891, 4818536.25...>,
 <POLYGON ((4509822.457 9390163.587, 4510155.181 9389838.312, 4510481.115 938...>,
 <POLYGON ((4854640.236 9456548.015, 4854273.56 9449412.057, 4854015.529 9444...>,
 <POLYGON ((5016018.297 9548930.756, 5015807.798 9548322.158, 5015250.994 954...>,
 <POLYGON ((4805485.317 9462654.324, 4807692.162 9463480.194, 4808255.756 946...>,
 <POLYGON ((4531415.583 9272001.831, 4531897.693 9271635.167, 4531931.645 927...>,
 <POLYGON ((4628408.103 9231239.186, 4627851.299 9230736.333, 4621264.716 922...>,
 <POLYGON ((4799869.747 9322707.359, 4799577.764 9322530.975, 4799190.717 932...>,
 <POLYGON ((4684108.862 9302188.996, 4686057.675 9293589.995, 4685344.695 928...>,
 <POLYGON ((4674378.374 9263914.268, 4674154.295 9263649.416, 4673930.215 926...>,
 <POLYGON ((4908548.358 9385975.538, 4908405.762 9385596.025, 4908127.36 9385...>,
 <MULTIPOLYGON (((4687245.976 9862165.022, 4687728.087 9862826.174, 4687938.5...>,
 <POLYGON ((4885332.352 9449134.458, 4885678.657 9449026.127, 4886086.074 944...>,
 <POLYGON ((4881393.983 9447502.697, 4877944.515 9445017.744, 4865497.911 943...>,
 <POLYGON ((4509808.876 9375416.107, 4510277.406 9375124.647, 4510637.292 937...>,
 <POLYGON ((4875072.222 9418300.655, 4877299.437 9410862.726, 4878168.595 940...>,
 <POLYGON ((4893385.637 9392393.038, 4893609.717 9391939.022, 4894098.618 939...>,
 <POLYGON ((4717197.951 9614629.064, 4717231.902 9614311.461, 4717130.048 961...>,
 <POLYGON ((4706448.92 9757112.124, 4701410.524 9753858.657, 4698551.811 9751...>,
 <POLYGON ((4854660.607 9410022.69, 4857397.094 9406303.372, 4859488.504 9403...>,
 <POLYGON ((4673875.893 9412508.895, 4673706.136 9412041.469, 4673217.235 941...>,
 <MULTIPOLYGON (((4836394.723 9770334.582, 4835634.21 9770260.339, 4835124.93...>,
 <MULTIPOLYGON (((4948244.4 9725809.869, 4948122.175 9725458.804, 4947775.87 ...>,
 <MULTIPOLYGON (((4905377.292 9731973.624, 4905723.597 9731858.858, 4905859.4...>,
 <POLYGON ((4774148.123 9605087.03, 4774535.17 9605073.513, 4774969.749 96049...>,
 <POLYGON ((4805397.044 9494768.576, 4804928.514 9494626.477, 4804507.515 949...>,
 <POLYGON ((4514494.177 9418036.48, 4514439.855 9417379.425, 4514331.21 94167...>,
 <POLYGON ((4710176.79 9447692.281, 4710821.867 9447516.239, 4717754.755 9446...>,
 <POLYGON ((4883505.764 9636162.997, 4884178.002 9632629.488, 4884463.195 963...>,
 <POLYGON ((4563099.082 9548011.094, 4562080.538 9548301.871, 4560722.48 9548...>,
 <POLYGON ((4878643.915 9353620.687, 4878671.076 9353132.491, 4878467.368 935...>,
 <POLYGON ((4730024.811 9433058.961, 4730411.858 9432774.526, 4730724.211 943...>,
 <POLYGON ((4567472.029 9423895.501, 4566962.757 9423550.07, 4566514.598 9423...>,
 <POLYGON ((4817504.133 9462126.304, 4817436.23 9461645.667, 4817422.649 9461...>,
 <POLYGON ((4660003.328 9807533.098, 4660505.809 9807121.47, 4660791.002 9806...>,
 <POLYGON ((4772355.486 9504403.634, 4772769.694 9503950.325, 4772565.986 950...>,
 <POLYGON ((4791714.607 9514666.672, 4791436.205 9514247.246, 4791171.383 951...>,
 <MULTIPOLYGON (((4816424.477 9571263.466, 4816302.251 9570756.426, 4816601.0...>,
 <POLYGON ((4962850.317 9345612.416, 4963250.944 9343971.302, 4965858.416 933...>,
 <POLYGON ((4794953.576 9501609.317, 4794892.463 9501264.249, 4794763.448 950...>,
 <POLYGON ((4750884.586 9445078.684, 4750185.186 9444130.723, 4748949.353 944...>,
 <MULTIPOLYGON (((4559398.373 9309734.956, 4559384.792 9309368.539, 4559228.6...>,
 <POLYGON ((4840889.896 9504281.85, 4844033.801 9501365.74, 4850043.208 94956...>,
 <POLYGON ((4782323.634 9253923.674, 4782303.263 9253298.775, 4782181.038 925...>,
 <MULTIPOLYGON (((4686478.673 9860869.7, 4686933.623 9861227.263, 4687049.058...>,
 <POLYGON ((5113085.51 9643567.457, 5112773.157 9643202.651, 5112229.933 9642...>,
 <POLYGON ((4680482.846 9800380.1, 4680482.846 9799806.5, 4680163.702 9799948...>,
 <MULTIPOLYGON (((4713592.306 9454740.396, 4713734.902 9454259.71, 4713938.61...>,
 <POLYGON ((4694348.621 9758016.604, 4691218.297 9758239.348, 4687938.586 975...>,
 <POLYGON ((4987261.414 9595760.368, 4987173.14 9595361.6, 4987003.383 959503...>,
 <POLYGON ((4769673.321 9669985.809, 4770875.203 9668304.021, 4771499.91 9667...>,
 <POLYGON ((5003592.064 9396756.848, 5003347.614 9396289.311, 5002994.518 939...>,
 <POLYGON ((4838852.809 9603546.163, 4838852.809 9603093.36, 4838961.453 9602...>,
 <POLYGON ((5048638.856 9606756.275, 5048448.728 9606317.002, 5048095.633 960...>,
 <POLYGON ((4854314.302 9332054.933, 4859474.923 9322286.751, 4862170.669 931...>,
 <POLYGON ((4844203.558 9609655.424, 4838418.23 9606148.051, 4832985.997 9602...>,
 <POLYGON ((4809790.362 9787443.309, 4810326.795 9787463.555, 4810673.1 97872...>,
 <POLYGON ((4748392.549 9626818.876, 4748324.646 9626278.338, 4748182.05 9625...>,
 <MULTIPOLYGON (((4520279.505 9359919.431, 4519933.2 9360231.301, 4519681.96 ...>,
 <POLYGON ((4936442.874 9664109.579, 4939125.039 9655754.021, 4939681.843 965...>,
 <MULTIPOLYGON (((4916506.579 9608371.429, 4916703.497 9607965.953, 4916370.7...>,
 <POLYGON ((4658197.11 9206593.596, 4657674.258 9206539.208, 4652194.493 9202...>,
 <POLYGON ((4916282.499 9257462.364, 4915705.325 9257618.577, 4915372.6 92576...>,
 <POLYGON ((4706014.341 9706554.006, 4706238.421 9702711.962, 4706306.324 969...>,
 <POLYGON ((4776395.71 9561602.188, 4776205.582 9561196.514, 4776117.308 9560...>,
 <POLYGON ((4780266.176 9675132.339, 4780497.046 9674895.955, 4780822.98 9674...>,
 <POLYGON ((4881237.806 9727261.379, 4881550.16 9726660.523, 4881706.336 9726...>,
 <POLYGON ((4774134.543 9717512.349, 4774637.024 9716540.109, 4780965.576 971...>,
 <POLYGON ((4908752.066 9278757.524, 4908249.585 9278553.847, 4907169.929 927...>,
 <POLYGON ((4909417.515 9415083.072, 4909797.771 9414547.922, 4910266.301 941...>,
 <POLYGON ((4928600.088 9331390.206, 4928722.313 9330813.65, 4928253.783 9330...>,
 <POLYGON ((4901907.453 9278132.912, 4902355.612 9278499.533, 4902756.239 927...>,
 <POLYGON ((5057052.027 9701152.156, 5057160.672 9700855.048, 5057384.751 970...>,
 <POLYGON ((4763018.836 9511953.893, 4763399.092 9511750.938, 4763711.446 951...>,
 <MULTIPOLYGON (((4824491.343 9471284.887, 4824545.665 9470885.534, 4824341.9...>,
 <POLYGON ((4737555.244 9696459.12, 4738234.273 9696405.098, 4738478.724 9696...>,
 <POLYGON ((4762278.694 9646114.315, 4762733.644 9645803.561, 4764213.927 964...>,
 <POLYGON ((4782011.281 9728274.052, 4782167.457 9727821.726, 4782500.182 972...>,
 <POLYGON ((4858897.748 9526835.871, 4864248.498 9523345.611, 4866176.94 9522...>,
 <POLYGON ((4742070.788 9597754.185, 4741697.322 9597923.151, 4741384.968 959...>,
 <POLYGON ((4784713.817 9753095.905, 4784740.978 9750497.122, 4784740.978 974...>,
 <POLYGON ((4771988.811 9588764.791, 4772457.341 9588453.865, 4772776.485 958...>,
 <POLYGON ((4883376.748 9590468.108, 4883274.894 9589981.449, 4883329.216 958...>,
 <POLYGON ((4782982.292 9480801.047, 4785372.475 9480577.709, 4793493.663 947...>,
 <POLYGON ((4571233.851 9313582.2, 4571288.173 9312971.544, 4571933.251 93130...>,
 <MULTIPOLYGON (((4826100.642 9787875.224, 4826243.238 9787544.539, 4825700.0...>,
 <POLYGON ((4849812.339 9434447.259, 4849533.937 9433648.145, 4849398.131 943...>,
 <POLYGON ((4881794.61 9670735.514, 4881740.288 9670215.449, 4881203.855 9670...>,
 <POLYGON ((4694348.621 9758016.604, 4694946.166 9757895.107, 4695856.065 975...>,
 <POLYGON ((4748915.401 9726363.47, 4749193.803 9726066.416, 4749580.85 97254...>,
 <POLYGON ((4885454.577 9636149.485, 4885732.979 9635784.654, 4894954.195 963...>,
 <POLYGON ((4958022.42 9740938.629, 4958524.901 9740621.353, 4958891.577 9740...>,
 <POLYGON ((4882928.589 9727369.398, 4882419.317 9727382.9, 4882283.511 97269...>,
 <POLYGON ((4647651.788 9183745.173, 4629209.357 9175385.159, 4623132.046 917...>,
 <POLYGON ((4516639.909 9356414.182, 4516931.892 9356176.875, 4516755.344 935...>,
 <POLYGON ((4872281.412 9693960.6, 4872349.315 9693595.948, 4872525.863 96931...>,
 <POLYGON ((4741738.063 9248781.627, 4741337.436 9248435.183, 4740970.76 9247...>,
 <POLYGON ((4827601.296 9402760.003, 4827967.972 9402631.273, 4827893.278 940...>,
 <MULTIPOLYGON (((4746199.285 9761701.968, 4745914.092 9761512.977, 4745520.2...>,
 <POLYGON ((4742070.788 9597754.185, 4741772.015 9596591.693, 4741595.467 959...>,
 <POLYGON ((4707929.203 9587189.872, 4709674.308 9575874.019, 4710278.644 957...>,
 <POLYGON ((4706014.341 9706554.006, 4701009.897 9707958.451, 4693486.254 971...>,
 <POLYGON ((5019501.716 9644405.157, 5019243.685 9643986.308, 5018802.316 964...>,
 <POLYGON ((4857240.917 9663454.395, 4858823.055 9663467.904, 4861912.638 966...>,
 <POLYGON ((5034263.81 9661603.65, 5033910.714 9661394.257, 5033788.489 96489...>,
 <POLYGON ((4998288.847 9728442.83, 4998445.023 9727936.495, 4998628.361 9727...>,
 <POLYGON ((4852691.422 9463913.433, 4852202.521 9463676.506, 4850830.882 946...>,
 <POLYGON ((4932769.327 9642229.827, 4939091.088 9640115.257, 4948970.961 963...>,
 <POLYGON ((4800915.451 9704717.401, 4800616.679 9704271.751, 4800168.519 970...>,
 <POLYGON ((5083941.58 9646289.958, 5080478.532 9638797.853, 5080492.112 9638...>,
 <POLYGON ((4832300.177 9252408.961, 4833155.754 9251919.897, 4838995.405 924...>,
 <POLYGON ((4851788.313 9395503.299, 4852467.342 9394934.112, 4852800.067 939...>,
 <POLYGON ((4800603.098 9256491.115, 4802246.348 9244841.543, 4803230.941 923...>,
 <POLYGON ((4539903.447 9430830.855, 4539726.899 9430532.866, 4539516.4 94302...>,
 <POLYGON ((5002301.909 9320373.625, 5002478.456 9319376.332, 5002566.73 9317...>,
 <POLYGON ((4816275.09 9680251.638, 4815867.673 9679900.453, 4815433.094 9679...>,
 <POLYGON ((4635171.233 9630075.56, 4635279.877 9629643.143, 4635293.458 9629...>,
 <POLYGON ((4588243.53 9314654.226, 4588922.559 9314620.302, 4589289.235 9314...>,
 <POLYGON ((4915881.872 9463155.262, 4916282.499 9463432.808, 4916635.595 946...>,
 <POLYGON ((4927710.56 9300478.801, 4927730.93 9297730.166, 4929523.567 92949...>,
 <POLYGON ((4875662.977 9718268.53, 4875954.96 9718410.314, 4876253.733 97185...>,
 <MULTIPOLYGON (((4817504.133 9462126.304, 4822440.675 9457712.45, 4831553.24...>,
 <MULTIPOLYGON (((4848508.603 9721063.665, 4848243.781 9720577.559, 4847883.8...>,
 <POLYGON ((4843646.754 9522080.694, 4844712.83 9522371.559, 4844223.929 9520...>,
 <POLYGON ((4820729.521 9574474.652, 4832422.403 9574366.488, 4833053.9 95730...>,
 <POLYGON ((4421120.882 9452851.487, 4422832.036 9448714.673, 4422424.618 944...>,
 <POLYGON ((4584515.66 9259778.347, 4585629.268 9259241.809, 4585887.299 9258...>,
 <POLYGON ((4738200.322 9248992.209, 4737901.549 9248625.387, 4737677.469 924...>,
 <POLYGON ((4756493.366 9446825.606, 4756737.817 9446527.685, 4756860.042 944...>,
 <POLYGON ((4785005.799 9445085.455, 4784937.896 9444719.814, 4784815.671 944...>,
 <POLYGON ((4797588.209 9690719.206, 4797968.465 9690388.309, 4798267.238 969...>,
 <POLYGON ((4761165.087 9587311.54, 4761076.813 9586703.196, 4760920.636 9586...>,
 <POLYGON ((4912758.338 9416383.671, 4912432.404 9416112.715, 4911787.327 941...>,
 <POLYGON ((4565434.942 9407278.95, 4564912.089 9407068.931, 4564511.462 9407...>,
 <POLYGON ((4793880.71 9821372.776, 4794118.37 9820434.864, 4794403.562 98198...>,
 <POLYGON ((4613999.105 9363410.924, 4614067.008 9362855.01, 4614100.959 9361...>,
 <POLYGON ((4877679.694 9296651.036, 4878222.917 9296393.128, 4882317.463 929...>,
 <POLYGON ((4955652.608 9305045.992, 4955998.913 9304781.335, 4956487.814 930...>,
 <POLYGON ((4717795.496 9128469.702, 4717422.03 9128204.124, 4717761.545 9127...>,
 <MULTIPOLYGON (((4882127.335 9513137.785, 4881808.191 9512670.996, 4881203.8...>,
 <POLYGON ((5020561.002 9411567.264, 5020180.746 9410788.207, 5019814.07 9409...>,
 <POLYGON ((4821184.471 9496135.418, 4821116.568 9495790.326, 4821286.325 949...>,
 <POLYGON ((4722046.219 9591130.502, 4721278.916 9591164.297, 4720633.838 959...>,
 <POLYGON ((4828314.277 9427390.356, 4828470.453 9427112.671, 4828837.129 942...>,
 <MULTIPOLYGON (((4739266.397 9819517.191, 4739103.43 9819173.063, 4739001.57...>,
 <POLYGON ((4755977.304 9774795.832, 4755732.854 9774384.133, 4755400.129 977...>,
 <POLYGON ((5086644.116 9702414.858, 5087567.596 9701341.224, 5087845.998 970...>,
 <POLYGON ((4995192.474 9653018.238, 4995206.054 9652606.176, 4995348.651 965...>,
 <POLYGON ((4916751.03 9608783.661, 4917138.076 9608972.881, 4917538.703 9608...>,
 <MULTIPOLYGON (((4767683.766 9640709.773, 4767384.993 9640290.91, 4767670.18...>,
 <POLYGON ((4455968.657 9427654.495, 4456199.527 9427336.174, 4455608.771 942...>,
 <POLYGON ((4797499.935 9616034.614, 4797153.63 9616169.762, 4796352.376 9616...>,
 <POLYGON ((4742586.85 9566632.4, 4742193.013 9566165.9, 4741785.595 9565739....>,
 <POLYGON ((4676945.104 9665237.568, 4676836.46 9664683.706, 4676578.429 9664...>,
 <POLYGON ((5228866.766 9099328.501, 5229437.15 9099076.379, 5230639.032 9097...>,
 <POLYGON ((5042262.773 9363573.63, 5041875.726 9363363.468, 5042052.274 9363...>,
 <POLYGON ((5044388.134 9352034.034, 5044068.99 9351247.473, 5043620.831 9350...>,
 <POLYGON ((5240593.599 9242851.009, 5240613.97 9242504.527, 5240681.873 9241...>,
 <POLYGON ((5256815.605 9206702.373, 5256713.75 9205702.977, 5255247.047 9203...>,
 <POLYGON ((5111842.887 9428121.815, 5111374.357 9426557.296, 5111231.761 942...>,
 <POLYGON ((5071780.169 9462126.304, 5076431.518 9453596.224, 5071956.716 944...>,
 <POLYGON ((4929842.711 9083564.674, 4926549.42 9062605.528, 4924892.589 9051...>,
 <POLYGON ((5031194.598 9311824.849, 5031486.58 9309124.259, 5031561.274 9308...>,
 <POLYGON ((5029456.283 9334435.684, 5029483.445 9333777.765, 5029272.945 933...>,
 <POLYGON ((4999232.697 8989971.751, 5000712.981 8988065.586, 5001310.526 898...>,
 <POLYGON ((4881081.63 9202296.721, 4878637.125 9200120.946, 4880803.228 9194...>,
 <POLYGON ((5151348.801 9327591.617, 5144259.737 9319607, 5142915.26 9318066....>,
 <POLYGON ((5171061.017 9203622.537, 5172853.654 9201745.987, 5173485.151 920...>,
 <POLYGON ((5072425.246 9279354.973, 5076784.613 9279334.605, 5076832.145 927...>,
 <POLYGON ((5232764.393 9375470.332, 5232594.636 9375083.978, 5232458.83 9374...>,
 <POLYGON ((4922903.033 8882538.373, 4922957.356 8882195.794, 4923127.113 888...>,
 <POLYGON ((4786574.356 9127523.147, 4793826.387 9087627.145, 4794539.368 908...>,
 <POLYGON ((5100917.308 9284976.103, 5101148.178 9284650.256, 5101161.759 928...>,
 <POLYGON ((5104808.145 9536419.813, 5105100.128 9536575.366, 5105235.933 953...>,
 <POLYGON ((4704391.462 8911871.59, 4715507.168 8918436.316, 4715452.846 8917...>,
 <POLYGON ((5053134.029 9366129.408, 5053310.576 9365709.101, 5053201.932 936...>,
 <POLYGON ((5122557.966 9579990.875, 5122164.13 9572662.881, 5122143.759 9572...>,
 <POLYGON ((5141244.848 9117423.061, 5141156.574 9117109.739, 5140300.997 911...>,
 <POLYGON ((5223482.065 9196224.713, 5223950.595 9195891.513, 5225573.475 919...>,
 <POLYGON ((5070354.207 9411099.831, 5070598.658 9410720.463, 5070992.495 941...>,
 <POLYGON ((4915094.198 9161103.794, 4916146.694 9160511.763, 4921877.699 915...>,
 <POLYGON ((5252951.929 9110127.529, 5253474.781 9110147.966, 5254235.294 911...>,
 <POLYGON ((5111197.809 9527410.803, 5111197.809 9519909.321, 5111197.809 951...>,
 <POLYGON ((5190372.605 9227365.736, 5187962.052 9225673.558, 5187459.57 9225...>,
 <POLYGON ((4853879.723 9001768.809, 4853913.674 9001119.959, 4854259.979 900...>,
 <POLYGON ((5170028.892 9650066.22, 5165601.623 9647769.403, 5164929.384 9647...>,
 <POLYGON ((5018422.06 8973011.144, 5018021.433 8972580.541, 5017702.289 8972...>,
 <POLYGON ((5105032.225 9500513.214, 5105052.596 9499126.149, 5107415.617 949...>,
 <POLYGON ((5152279.071 9543182.709, 5153304.405 9550925.579, 5160590.388 955...>,
 <POLYGON ((5032050.175 9110795.143, 5035689.771 9109602.968, 5036681.153 910...>,
 <POLYGON ((5136674.982 9654977.2, 5143091.807 9647208.702, 5148354.283 96408...>,
 <POLYGON ((5196517.819 9467914.01, 5196626.463 9467534.946, 5196517.819 9467...>,
 <POLYGON ((5089523.2 9515268.748, 5089855.924 9514822.266, 5090256.551 95145...>,
 <POLYGON ((5069641.227 9260477.877, 5070198.031 9260457.502, 5070978.914 926...>,
 <POLYGON ((5186590.413 9677030.152, 5186658.316 9676611.42, 5186800.912 9675...>,
 <POLYGON ((5277451.3 9201004.866, 5276975.979 9199366.203, 5276894.496 91984...>,
 <POLYGON ((5126706.834 9164982.433, 5127182.155 9164771.498, 5128030.941 916...>,
 <POLYGON ((5149399.988 9079631.35, 5149012.941 9079017.801, 5147186.353 9076...>,
 <POLYGON ((5222382.038 9214703.627, 5222449.941 9212596.368, 5222680.811 921...>,
 <POLYGON ((5050261.736 9579308.124, 5051096.942 9578916.048, 5051117.312 957...>,
 <POLYGON ((5081449.543 9493604.711, 5080879.159 9493286.675, 5080478.532 949...>,
 <POLYGON ((4963855.28 9179487.12, 4953262.425 9168738.289, 4947334.501 91627...>,
 <POLYGON ((5015583.718 9104322.951, 5015407.171 9103975.47, 5015006.544 9103...>,
 <POLYGON ((5140246.675 9494403.178, 5139601.597 9492176.923, 5136104.597 948...>,
 <POLYGON ((5115971.384 9071402.25, 5116860.912 9071334.065, 5118259.712 9068...>,
 <POLYGON ((4970985.086 9029584.403, 4968459.097 9029263.615, 4968941.208 900...>,
 <POLYGON ((5147478.335 9614973.696, 5144470.236 9607898.374, 5143349.838 960...>,
 <POLYGON ((5234455.176 9156285.674, 5235256.43 9155047.039, 5236519.424 9154...>,
 <POLYGON ((5177858.098 9416905.258, 5177878.469 9416580.113, 5178184.032 941...>,
 <POLYGON ((5139696.661 9617095.521, 5137428.704 9616413.028, 5136586.708 961...>,
 <POLYGON ((5176432.137 9629683.682, 5176309.912 9629298.559, 5176045.09 9628...>,
 <POLYGON ((5124649.376 9482188.439, 5124058.621 9482384.702, 5123556.139 948...>,
 <POLYGON ((5181660.661 9606195.357, 5181395.84 9605904.76, 5181205.712 96054...>,
 <POLYGON ((5090324.454 9433505.929, 5089923.827 9433472.068, 5089692.957 943...>,
 <POLYGON ((4941060.272 9096296.125, 4942296.105 9096527.819, 4941936.22 9094...>,
 <POLYGON ((5112141.66 9194885.099, 5116514.607 9188499.334, 5106858.813 9183...>,
 <POLYGON ((5171536.337 9137328.24, 5174666.661 9136803.992, 5176880.296 9134...>,
 <POLYGON ((5087879.949 9040510.192, 5091580.658 9036866.309, 5096856.714 903...>,
 <POLYGON ((4800379.018 8852344.503, 4796250.521 8850952.424, 4799632.086 884...>,
 <POLYGON ((4774833.943 8815603.593, 4776680.902 8814889.653, 4777448.205 881...>,
 <POLYGON ((4923969.109 9046098.226, 4921911.651 9032908.169, 4911821.278 902...>,
 <POLYGON ((4872627.717 8907722.681, 4873381.439 8906825.743, 4873782.067 890...>,
 <POLYGON ((4854816.783 9023727.914, 4851801.894 9021748.259, 4850308.03 9021...>,
 <POLYGON ((5027969.21 9386863.318, 5027392.035 9382864.821, 5026556.829 9377...>,
 <POLYGON ((5243954.793 9139057.532, 5244409.743 9138880.521, 5247180.181 913...>,
 <POLYGON ((5044333.811 9418801.907, 5044401.714 9416925.58, 5044469.617 9415...>,
 <POLYGON ((5074380.85 8980289.661, 5074991.976 8980173.489, 5075440.136 8980...>,
 <POLYGON ((5154173.562 9234881.324, 5154261.836 9232951.566, 5153908.741 923...>,
 <POLYGON ((5187683.65 9541329.729, 5188016.374 9541539.374, 5188450.953 9541...>,
 <POLYGON ((5140375.691 9031174.657, 5141068.3 9030806.106, 5141367.073 90305...>,
 <POLYGON ((5082685.376 9340682.16, 5092762.168 9332645.043, 5095444.334 9330...>,
 <POLYGON ((4940204.695 9121639.082, 4945154.818 9105862.737, 4945243.092 909...>,
 <POLYGON ((5105656.932 9593029.787, 5105656.932 9590779.028, 5105656.932 958...>,
 <POLYGON ((5030882.245 8963051.376, 5034399.615 8958805.56, 5034766.291 8958...>,
 <POLYGON ((5035764.464 9158606.327, 5035689.771 9155040.233, 5033041.557 915...>,
 <POLYGON ((5131290.281 9184724.609, 5135683.599 9177215.098, 5140002.225 917...>,
 <POLYGON ((5017654.757 9257258.607, 5019080.718 9255159.865, 5022985.136 924...>,
 <POLYGON ((5097155.487 9287800.031, 5096809.182 9287542.082, 5096965.359 928...>,
 <POLYGON ((5041896.097 9246988.246, 5037170.054 9240955.517, 5034678.017 924...>,
 <POLYGON ((5252755.01 9197346.696, 5254269.245 9197101.902, 5252530.931 9192...>,
 <POLYGON ((5211904.618 9251573.474, 5212257.714 9245989.632, 5212712.663 923...>,
 <POLYGON ((5282781.678 9215906.765, 5281532.265 9214737.614, 5281423.62 9214...>,
 <POLYGON ((5192443.644 9212643.952, 5195458.533 9212310.862, 5196551.77 9212...>,
 <POLYGON ((4742797.349 8974084.213, 4764723.199 8964261.451, 4748460.452 893...>,
 <POLYGON ((4936884.243 9252599.152, 4937631.175 9252354.621, 4938255.882 925...>,
 <POLYGON ((4948081.433 9031440.831, 4948611.076 9030976.732, 4949093.187 903...>,
 <POLYGON ((5067373.27 9320210.803, 5067026.965 9319444.176, 5062755.872 9319...>,
 <POLYGON ((5135357.665 9695203.113, 5135296.553 9694217.207, 5135181.118 969...>,
 <POLYGON ((5145760.392 9276822.562, 5146242.502 9276598.509, 5153324.776 927...>,
 <POLYGON ((5155015.559 9243027.647, 5154872.962 9242402.619, 5153840.838 923...>,
 <POLYGON ((5152645.747 9163526.28, 5152326.603 9163424.211, 5150601.869 9155...>,
 <POLYGON ((5187962.052 9190308.378, 5187996.003 9188757.773, 5186705.848 918...>,
 <POLYGON ((5017546.113 9185023.877, 5022441.913 9181459.747, 5020350.503 917...>,
 <POLYGON ((5211381.766 9142182.35, 5212468.213 9138676.276, 5212814.517 9138...>,
 <POLYGON ((5217676.366 9193647.454, 5217866.494 9190872.841, 5218076.993 919...>,
 <POLYGON ((5067373.27 9320210.803, 5067509.075 9319898.726, 5067855.38 93195...>,
 <POLYGON ((5124649.376 9482188.439, 5126469.174 9481687.628, 5131412.506 948...>,
 <POLYGON ((4949235.783 9241580.561, 4949704.313 9241893.081, 4949948.763 924...>,
 <POLYGON ((5093617.745 9047094.304, 5090181.858 9047790.181, 5087879.949 904...>,
 <POLYGON ((5113852.813 9612182.82, 5114124.425 9610601.516, 5120989.409 9609...>,
 <POLYGON ((5066850.417 9615946.768, 5066993.013 9615271.024, 5067950.444 961...>,
 <POLYGON ((5078346.38 9496534.64, 5076241.39 9490126.546, 5073925.901 948304...>,
 <POLYGON ((5179671.106 9459486.147, 5179351.962 9459188.277, 5178937.755 945...>,
 <POLYGON ((4889657.768 8842591.918, 4889325.043 8842825.134, 4888958.368 884...>,
 <POLYGON ((4997895.01 9034641.608, 4997908.59 9031836.676, 4998119.089 90219...>,
 <POLYGON ((5044388.134 9352034.034, 5042839.947 9352122.183, 5041427.567 935...>,
 <POLYGON ((5064134.301 9506135.656, 5064480.606 9505722.951, 5062755.872 950...>,
 <POLYGON ((5168114.03 9071913.632, 5167645.5 9071736.354, 5167591.178 906757...>,
 <POLYGON ((5160047.164 9523088.571, 5159938.52 9522736.83, 5160305.195 95226...>,
 <POLYGON ((5054071.089 9401262.653, 5053799.477 9400639.312, 5053480.334 940...>,
 <POLYGON ((5191139.908 9263323.442, 5187283.022 9265951.552, 5185857.061 926...>,
 <POLYGON ((4920207.288 9195089.103, 4918509.715 9191008.855, 4917552.284 918...>,
 <POLYGON ((5174041.955 9678705.065, 5173763.553 9678097.236, 5173566.634 967...>,
 <POLYGON ((5088511.446 9620156.55, 5087913.901 9619670.035, 5086365.714 9618...>,
 <POLYGON ((5059319.984 9614595.276, 5056793.996 9611871.967, 5056549.545 961...>,
 <POLYGON ((4912031.777 9115066.277, 4912099.68 9114603.08, 4911957.084 91141...>,
 <POLYGON ((5252809.333 9185513.585, 5253868.618 9183377.88, 5254024.795 9183...>,
 <POLYGON ((4919419.614 9229567.522, 4916737.449 9225292.98, 4915603.47 92233...>,
 <POLYGON ((5221736.96 9177153.874, 5221404.236 9176698.096, 5220847.432 9176...>,
 <POLYGON ((5049596.287 9594591.094, 5049962.963 9594374.811, 5050709.895 959...>,
 <POLYGON ((5034942.839 9547416.014, 5037950.938 9548984.854, 5039315.786 954...>,
 <MULTIPOLYGON (((5042262.773 9363573.63, 5042351.046 9363166.865, 5042575.12...>,
 <POLYGON ((5192878.222 9467670.326, 5191533.745 9463013.105, 5190909.038 946...>,
 <POLYGON ((5055259.39 9385019.974, 5055401.986 9384477.804, 5055904.468 9384...>,
 <POLYGON ((5224385.174 9249929.63, 5224317.271 9247103.73, 5224351.222 92457...>,
 <POLYGON ((4797778.337 8949484.992, 4806021.75 8944341.633, 4806354.475 8944...>,
 <POLYGON ((4925483.344 8890642.827, 4925938.294 8890307.175, 4926298.179 888...>,
 <POLYGON ((5093638.116 9601234.819, 5093672.068 9600822.556, 5093685.648 960...>,
 <POLYGON ((5119196.772 9642060.933, 5119006.644 9640966.495, 5119318.998 963...>,
 <POLYGON ((5041896.097 9246988.246, 5043790.588 9245765.451, 5043763.427 924...>,
 <POLYGON ((5003347.614 9384355.815, 5003069.212 9384565.907, 5002668.584 938...>,
 <POLYGON ((5104685.92 9486512.88, 5105568.658 9485301.52, 5104366.776 948432...>,
 <POLYGON ((5054145.782 9553075.879, 5054424.184 9552629.595, 5054756.908 955...>,
 <POLYGON ((5122734.514 9286184.436, 5122911.062 9282505.049, 5123080.819 928...>,
 <POLYGON ((5113363.912 9427925.406, 5122734.514 9426658.889, 5124615.425 942...>,
 <POLYGON ((5119325.788 9264070.463, 5119943.704 9263825.984, 5118728.242 926...>,
 <POLYGON ((5047606.732 9365044.74, 5047559.2 9364509.179, 5047226.476 936163...>,
 <POLYGON ((5239391.717 9192715.8, 5238991.09 9188744.171, 5238923.187 918804...>,
 <POLYGON ((5086229.908 9123505.176, 5085910.765 9123450.692, 5085605.202 912...>,
 <POLYGON ((5027120.423 9146273.569, 5029293.316 9143884.232, 5034902.097 913...>,
 <POLYGON ((4843314.03 9061446.134, 4844271.461 9061009.648, 4852535.245 9057...>,
 <POLYGON ((5003347.614 9384355.815, 5003884.047 9384145.722, 5004440.85 9383...>,
 <POLYGON ((5154003.805 9220814.183, 5154485.916 9220773.403, 5154906.914 922...>,
 <POLYGON ((4843042.418 8883607.197, 4842621.42 8879420.787, 4842132.519 8878...>,
 <POLYGON ((5149943.211 9683695.902, 5149678.39 9683270.439, 5149556.164 9682...>,
 <POLYGON ((5061710.167 9375870.239, 5061845.973 9375138.204, 5061825.602 937...>,
 <POLYGON ((5197094.993 9160538.983, 5200795.702 9160348.443, 5203267.368 915...>,
 <POLYGON ((5074903.703 9413694.383, 5074618.51 9413416.642, 5073885.159 9412...>,
 <POLYGON ((5255199.515 9110202.466, 5254235.294 9110168.404, 5253474.781 911...>,
 <POLYGON ((4970828.909 9137539.298, 4970951.134 9137130.797, 4973653.67 9127...>,
 <POLYGON ((5187412.038 9518326.414, 5195750.516 9515985.822, 5197027.09 9519...>,
 <POLYGON ((5086229.908 9123505.176, 5086644.116 9123396.209, 5087065.114 912...>,
 <POLYGON ((5114735.551 9112927.355, 5117017.089 9111564.931, 5120989.409 911...>,
 <POLYGON ((5173688.859 9224559.001, 5173831.456 9223335.679, 5176445.718 922...>,
 <POLYGON ((5238346.012 9324023.435, 5239303.444 9322008.605, 5239568.265 932...>,
 <POLYGON ((5251838.321 9268986.961, 5252109.933 9268335.075, 5252320.432 926...>,
 <POLYGON ((5139445.421 9603410.998, 5139520.114 9598321.908, 5139567.646 959...>,
 <POLYGON ((5167102.277 9537610.121, 5164094.178 9529176.158, 5162831.184 952...>,
 <POLYGON ((5041977.58 9568261.75, 5041631.276 9565672.354, 5040375.072 95646...>,
 <POLYGON ((4896400.527 9249950.009, 4897079.556 9249372.614, 4897480.183 924...>,
 <POLYGON ((5093930.099 9374460.385, 5094575.176 9373762.225, 5095111.609 937...>,
 <POLYGON ((5176411.766 9079999.475, 5176846.345 9079685.887, 5177783.405 907...>,
 <POLYGON ((4883919.971 8935619.578, 4881169.903 8934230.703, 4867840.562 892...>,
 <POLYGON ((5075738.908 9309226.042, 5075786.44 9308839.265, 5075786.44 93080...>,
 <POLYGON ((4819629.494 8940497.337, 4819670.236 8939991.119, 4820016.541 894...>,
 <POLYGON ((5046269.044 9148696.817, 5044557.891 9147165.284, 5044680.116 914...>,
 <POLYGON ((4786574.356 9127523.147, 4784157.013 9127993.022, 4771289.411 913...>,
 <POLYGON ((4996075.212 9142672.498, 4995348.651 9142114.273, 4994995.555 913...>,
 <POLYGON ((5131799.553 9217130.265, 5135928.05 9213799.556, 5136172.5 921358...>,
 <POLYGON ((5148245.638 9338789.973, 5138318.232 9332889.224, 5137571.3 93324...>,
 <POLYGON ((4698898.116 9069479.4, 4698775.891 9069008.902, 4699006.761 90687...>,
 <POLYGON ((4867195.484 9012292.369, 4882127.335 9006870.45, 4888333.661 9004...>,
 <POLYGON ((5164942.964 9234820.171, 5165812.122 9234324.148, 5167353.518 923...>,
 <POLYGON ((5096055.46 9254290.459, 5096333.862 9253658.772, 5096591.893 9253...>,
 <POLYGON ((5206581.03 9252266.318, 5204883.457 9239576.316, 5204292.702 9236...>,
 <POLYGON ((5038534.903 9326723.334, 5032905.751 9326845.437, 5032450.802 932...>,
 <POLYGON ((5130074.819 9186193.726, 5127114.252 9179242.236, 5126679.673 917...>,
 <POLYGON ((5001880.911 9033679.353, 5001948.814 9032798.973, 5002580.311 902...>,
 <POLYGON ((5104509.372 9329925.065, 5101806.836 9328290.304, 5095444.334 933...>,
 <POLYGON ((5171936.964 9102333.415, 5172072.77 9101910.968, 5172853.654 9100...>,
 <POLYGON ((5064392.332 9225802.682, 5064412.703 9225381.329, 5064500.976 922...>,
 <POLYGON ((4774426.525 8892060.747, 4772403.019 8887752.014, 4765694.211 887...>,
 <POLYGON ((5045556.064 9334001.594, 5041183.116 9331268.112, 5040008.396 932...>,
 <POLYGON ((5191139.908 9263323.442, 5189897.285 9260708.787, 5192022.646 926...>,
 <POLYGON ((5195879.531 9589427.196, 5196015.337 9588987.846, 5195927.063 958...>,
 <POLYGON ((5128940.84 9407536.393, 5129572.337 9407455.095, 5130095.19 94074...>,
 <POLYGON ((5132566.856 9232407.96, 5132926.741 9230838.263, 5133259.465 9229...>,
 <POLYGON ((5070279.514 9583303.157, 5068188.105 9581775.466, 5067916.493 957...>,
 <POLYGON ((5095967.186 9090039.911, 5097922.79 9088485.941, 5105358.159 9082...>,
 <POLYGON ((5119719.625 9593381.253, 5121953.63 9591596.878, 5122646.24 95910...>,
 <POLYGON ((5037835.503 9185268.731, 5041964 9185214.319, 5044001.087 9182194...>,
 <POLYGON ((5173043.782 9259221.434, 5172629.574 9257571.034, 5172493.768 925...>,
 <POLYGON ((5245733.849 9224300.746, 5249027.141 9221983.194, 5249583.944 922...>,
 <POLYGON ((5073728.982 8997424.729, 5073701.821 8996830.455, 5073240.081 899...>,
 <POLYGON ((5200598.784 9260165.467, 5201501.892 9254147.821, 5200462.978 925...>,
 <POLYGON ((5085829.281 9372250.648, 5086073.732 9371606.692, 5085985.458 937...>,
 <POLYGON ((5086942.889 9175698.09, 5092293.638 9166390.914, 5087187.339 9155...>,
 <POLYGON ((5229409.989 9398057.804, 5230068.647 9397556.397, 5230835.95 9397...>,
 <POLYGON ((5027324.132 9368488.494, 5028349.466 9367153.045, 5028593.916 936...>,
 <POLYGON ((5044068.99 9031597.804, 5046391.27 9017631.633, 5046479.543 90171...>,
 <POLYGON ((4814529.985 8803876.58, 4814020.713 8803457.682, 4813029.331 8802...>,
 <POLYGON ((4868254.77 9177868.145, 4873795.647 9164982.433, 4875051.851 9168...>,
 <POLYGON ((5149658.019 9471575.94, 5150948.174 9467758.323, 5150513.595 9465...>,
 <POLYGON ((5244110.97 9170568.481, 5244531.968 9170568.481, 5244864.692 9170...>,
 <POLYGON ((5118259.712 9140528.061, 5118748.613 9140140.009, 5121865.357 913...>,
 <POLYGON ((5058240.328 9146293.99, 5065003.458 9140119.585, 5066205.339 9138...>,
 <POLYGON ((5183222.428 9226652.173, 5183874.296 9226074.521, 5187459.57 9225...>,
 <POLYGON ((5009798.39 9087872.517, 5009879.874 9085214.247, 5011957.703 9083...>,
 <POLYGON ((5078679.104 9269781.436, 5079134.054 9269659.21, 5079833.454 9269...>,
 <POLYGON ((5023528.359 9466979.884, 5028580.336 9466438.357, 5029884.072 946...>,
 <POLYGON ((5046567.817 9510343.772, 5044870.244 9509356.034, 5036491.025 950...>,
 <POLYGON ((4853601.321 9211352.364, 4853438.354 9210924.094, 4853126.001 921...>,
 <POLYGON ((5152122.894 9305500.655, 5152462.409 9305256.359, 5152815.504 930...>,
 <POLYGON ((5005405.072 8981875.036, 5006742.759 8979872.806, 5006797.082 897...>,
 <POLYGON ((5094996.174 9274351.142, 5094507.273 9274161.028, 5094018.372 927...>,
 <POLYGON ((5178116.129 9163158.832, 5178917.384 9162798.186, 5179596.413 916...>,
 <POLYGON ((5235677.428 9207042.299, 5235942.249 9206702.373, 5237666.983 920...>,
 <POLYGON ((5120907.926 9203785.712, 5128927.26 9202228.729, 5134936.667 9196...>,
 <MULTIPOLYGON (((5448403.672 9177031.427, 5447222.161 9176942.992, 5444173.3...>,
 <POLYGON ((5487305.25 9539415.842, 5487427.475 9539070.932, 5487461.427 9538...>,
 <POLYGON ((5318695.529 9687565.52, 5319259.123 9687707.337, 5319714.072 9687...>,
 <POLYGON ((5439345.423 9332990.966, 5439209.617 9331458.035, 5439033.07 9330...>,
 <POLYGON ((5324385.793 9294893.164, 5324535.179 9294506.289, 5324446.905 929...>,
 <POLYGON ((5280153.836 9606073.712, 5278361.199 9604451.763, 5278653.181 960...>,
 <POLYGON ((5369344.311 9222785.174, 5368135.639 9222710.414, 5365297.297 922...>,
 <POLYGON ((5538103.419 9405761.377, 5537716.372 9404826.426, 5535170.013 939...>,
 <POLYGON ((5383732.938 9659556.989, 5382673.653 9656105.277, 5382374.88 9655...>,
 <POLYGON ((5352355.002 9257897.043, 5352158.084 9257374.069, 5351777.827 925...>,
 <POLYGON ((5422478.34 9552521.404, 5422199.938 9552196.832, 5421622.763 9552...>,
 <POLYGON ((5511560.17 9576948.88, 5511858.943 9576779.878, 5512191.668 95762...>,
 <POLYGON ((5607411.921 9486045.934, 5607377.97 9485477.473, 5607113.149 9485...>,
 <POLYGON ((5479109.369 9515512.284, 5480610.023 9514281.071, 5480766.2 95139...>,
 <POLYGON ((5260760.764 9479068.464, 5261073.117 9478635.312, 5261276.826 947...>,
 <POLYGON ((5320549.278 9211196.012, 5322477.721 9210400.647, 5323163.54 9210...>,
 <POLYGON ((5440683.111 9517805.537, 5441239.914 9517704.067, 5441681.283 951...>,
 <POLYGON ((5346114.725 9324810.353, 5346073.983 9324321.922, 5345958.548 932...>,
 <POLYGON ((5372284.507 9244454.312, 5372359.2 9243897.238, 5372916.004 92436...>,
 <POLYGON ((5461026.823 9240187.789, 5461984.254 9240051.906, 5462364.51 9240...>,
 <POLYGON ((5481377.326 9257041.265, 5481777.953 9256382.443, 5482124.258 925...>,
 <POLYGON ((5487407.105 9433695.55, 5487651.555 9433214.723, 5487862.054 9432...>,
 <POLYGON ((5416204.111 9195177.505, 5416706.592 9194953.101, 5417052.897 919...>,
 <POLYGON ((5492791.805 9531523.143, 5493158.481 9529906.638, 5493939.365 952...>,
 <POLYGON ((5471164.728 9225204.631, 5471477.081 9224912.4, 5471918.45 922466...>,
 <POLYGON ((5210920.026 9679542.513, 5211178.057 9679299.384, 5211544.733 967...>,
 <POLYGON ((5461841.658 9532125.097, 5462316.978 9531935.718, 5462731.186 953...>,
 <POLYGON ((5573392.562 9515309.338, 5573650.593 9515045.507, 5574085.172 951...>,
 <POLYGON ((5314757.16 9674578.524, 5314621.354 9674220.568, 5314533.08 96738...>,
 <POLYGON ((5364170.109 9474581.161, 5364007.142 9474202.13, 5363749.111 9473...>,
 <POLYGON ((5448403.672 9177031.427, 5451248.804 9176820.544, 5451669.802 917...>,
 <POLYGON ((5267795.506 9685363.972, 5268182.552 9685343.712, 5268528.857 968...>,
 <POLYGON ((5317670.195 9244773.608, 5317412.164 9243360.539, 5324141.342 924...>,
 <POLYGON ((5385688.542 9548234.249, 5384140.355 9545407.587, 5384099.614 954...>,
 <POLYGON ((5466968.328 9493198.707, 5466404.734 9493340.809, 5465990.526 949...>,
 <POLYGON ((5451282.755 9546347.563, 5451438.932 9545826.858, 5451819.188 954...>,
 <POLYGON ((5288600.958 9568971.624, 5288757.135 9567666.804, 5288757.135 956...>,
 <POLYGON ((5426484.612 9231640.106, 5428786.52 9231327.524, 5432005.118 9230...>,
 <POLYGON ((5413637.381 9277311.401, 5413365.769 9276978.719, 5413114.528 927...>,
 <POLYGON ((5224459.867 9551324.538, 5224819.752 9551547.684, 5225220.38 9551...>,
 <POLYGON ((5539719.508 9546327.276, 5539393.574 9545908.007, 5538796.029 954...>,
 <POLYGON ((5354426.041 9320862.089, 5354880.991 9320644.994, 5355682.245 932...>,
 <POLYGON ((5324453.696 9481701.163, 5324603.082 9481342.472, 5324766.049 948...>,
 <POLYGON ((5490842.992 9591231.888, 5490632.493 9590887.174, 5490245.446 959...>,
 <POLYGON ((5449680.246 9277134.876, 5454032.823 9274493.727, 5453638.986 927...>,
 <POLYGON ((5202343.888 9663630.012, 5202459.323 9663069.389, 5203382.803 966...>,
 <POLYGON ((5447045.613 9483663.785, 5446665.357 9483860.044, 5446264.73 9483...>,
 <POLYGON ((5507662.543 9515065.802, 5507540.318 9513861.643, 5507499.576 951...>,
 <POLYGON ((5272209.195 9608763.387, 5271754.245 9608553.892, 5271387.57 9608...>,
 <POLYGON ((5287677.478 9421430.032, 5280432.238 9416315.932, 5280201.368 941...>,
 <POLYGON ((5394699.258 9223396.845, 5394420.856 9218197.405, 5394346.163 921...>,
 <POLYGON ((5244430.113 9519280.221, 5244341.84 9518948.757, 5244396.162 9518...>,
 <POLYGON ((5289198.504 9688963.416, 5290291.74 9688936.404, 5290848.544 9688...>,
 <POLYGON ((5414649.134 9362244.855, 5414880.004 9362034.689, 5415226.309 936...>,
 <POLYGON ((5538558.368 9344113.715, 5538028.726 9343767.855, 5537858.968 934...>,
 <POLYGON ((5510704.594 9577645.168, 5510412.611 9577388.286, 5509937.291 957...>,
 <POLYGON ((5388200.95 9249392.993, 5388071.934 9248917.486, 5388078.724 9248...>,
 <POLYGON ((5312760.814 9562291.83, 5312183.639 9562305.353, 5311592.884 9562...>,
 <POLYGON ((5493491.205 9590488.386, 5494102.332 9590258.575, 5494570.862 959...>,
 <MULTIPOLYGON (((5575096.925 9514686.967, 5575551.875 9514490.784, 5575972.8...>,
 <POLYGON ((5246976.473 9581390.159, 5242494.88 9581113.008, 5239880.618 9581...>,
 <POLYGON ((5408972.451 9547612.12, 5403913.684 9547747.366, 5405190.258 9546...>,
 <POLYGON ((5252632.785 9561182.991, 5252551.302 9560209.365, 5252985.88 9558...>,
 <POLYGON ((5278707.504 9661461.803, 5277227.22 9656051.237, 5276215.467 9655...>,
 <POLYGON ((5426484.612 9231640.106, 5423089.466 9232027.432, 5420264.705 923...>,
 <POLYGON ((5292634.391 9573082.025, 5292790.568 9572615.558, 5292994.276 957...>,
 <POLYGON ((5492323.275 9551615.303, 5489009.613 9551094.629, 5488649.728 954...>,
 <POLYGON ((5243540.585 9544535.225, 5243852.939 9544291.774, 5244185.663 954...>,
 <POLYGON ((5450929.66 9534803.402, 5451493.254 9534735.769, 5451805.608 9534...>,
 <POLYGON ((5300015.437 9527776.052, 5299770.987 9527566.372, 5299404.311 952...>,
 <POLYGON ((5514676.914 9548998.378, 5514384.932 9545772.759, 5514310.238 954...>,
 <POLYGON ((5492255.372 9483426.919, 5492615.258 9483196.821, 5493015.885 948...>,
 <POLYGON ((5236600.908 9572250.495, 5236308.925 9571851.628, 5236288.554 957...>,
 <POLYGON ((5497884.524 9459519.996, 5498319.103 9459310.133, 5498699.359 945...>,
 <POLYGON ((5614256.535 9485998.562, 5614609.63 9485748.169, 5615112.112 9485...>,
 <POLYGON ((5489518.885 9316119.748, 5489552.837 9315543.043, 5489552.837 931...>,
 <POLYGON ((5414649.134 9315549.827, 5414316.41 9315095.244, 5414167.023 9314...>,
 <POLYGON ((5316101.637 9428521.405, 5316889.311 9428521.405, 5317425.744 942...>,
 <POLYGON ((5263809.605 9470086.821, 5263877.508 9469511.472, 5264013.313 946...>,
 <POLYGON ((5470186.926 9255811.91, 5470220.877 9255356.838, 5470315.941 9254...>,
 <POLYGON ((5257127.958 9534424.657, 5257569.327 9533937.696, 5257256.974 953...>,
 <POLYGON ((5245469.028 9510654.974, 5245890.026 9510357.302, 5246657.329 950...>,
 <POLYGON ((5528569.85 9375029.753, 5528712.446 9374562.059, 5528461.205 9374...>,
 <POLYGON ((5365765.827 9595983.407, 5365996.697 9596415.967, 5366152.874 959...>,
 <POLYGON ((5598958.009 9478026.188, 5597993.788 9477816.378, 5588310.832 947...>,
 <POLYGON ((5500580.27 9570026.284, 5500376.561 9569546.28, 5500233.965 95688...>,
 <POLYGON ((5376188.924 9598896.387, 5376596.342 9598815.285, 5376800.051 959...>,
 <MULTIPOLYGON (((5394298.631 9645236.095, 5394020.229 9644871.293, 5393735.0...>,
 <POLYGON ((5445144.332 9504383.337, 5445232.606 9504038.281, 5445463.476 950...>,
 <MULTIPOLYGON (((5343935.041 9682264.18, 5343480.092 9682243.92, 5343113.416...>,
 <POLYGON ((5403642.072 9478161.549, 5401652.517 9477274.928, 5393076.379 947...>,
 <POLYGON ((5479306.287 9421531.633, 5478817.386 9420678.182, 5478484.662 942...>,
 <POLYGON ((5508097.122 9377117.391, 5507764.398 9376480.262, 5507289.077 937...>,
 <POLYGON ((5503180.951 9360190.622, 5503058.726 9359790.615, 5502834.646 935...>,
 <POLYGON ((5596289.424 9454916.421, 5595155.446 9450888.053, 5595067.172 945...>,
 <POLYGON ((5416747.334 9170167.069, 5422770.322 9168540.977, 5423327.126 916...>,
 <POLYGON ((5456945.858 9140922.917, 5456456.957 9141065.882, 5456022.378 914...>,
 <POLYGON ((5283189.096 9689969.622, 5282992.177 9689604.958, 5282713.775 968...>,
 <POLYGON ((5423490.093 9207817.323, 5423435.771 9207497.797, 5423225.272 920...>,
 <POLYGON ((5393789.359 9299521.884, 5393986.278 9299196.122, 5393857.262 929...>,
 <POLYGON ((5458684.173 9270867.879, 5458847.14 9270521.578, 5459261.347 9270...>,
 <POLYGON ((5549619.753 9437921.27, 5550088.283 9437521.734, 5551106.827 9437...>,
 <POLYGON ((5404103.812 9477186.942, 5403635.282 9476733.475, 5403743.926 947...>,
 <POLYGON ((5495915.339 9573156.389, 5495338.165 9573345.679, 5494903.586 957...>,
 <POLYGON ((5485050.873 9561108.617, 5484636.666 9560364.876, 5484134.184 956...>,
 <POLYGON ((5324419.744 9655666.206, 5325580.884 9654720.51, 5329627.897 9649...>,
 <POLYGON ((5269866.544 9653126.319, 5269988.77 9652633.196, 5270043.092 9652...>,
 <MULTIPOLYGON (((5295649.28 9628359.394, 5296287.568 9624008.047, 5296477.69...>,
 <POLYGON ((5487386.734 9199876.166, 5487685.506 9199407, 5487841.683 9198842...>,
 ...]
In [104]:
pd.Series([type(x) for x in brazil_municipalities_valid.geometry]).value_counts()
Out[104]:
<class 'shapely.geometry.polygon.Polygon'>                  5104
<class 'shapely.geometry.multipolygon.MultiPolygon'>         456
<class 'shapely.geometry.collection.GeometryCollection'>      12
Name: count, dtype: int64
In [105]:
# brazil.to_file(os.path.join("maps","brazilMaps_5641_all.gpkg"),layer='country', driver="GPKG")
# brazil_cities.to_file(os.path.join("maps","brazilMaps_5641_all.gpkg"),layer='cities', driver="GPKG")
# brazil_rivers.to_file(os.path.join("maps","brazilMaps_5641_all.gpkg"),layer='rivers', driver="GPKG")
# airports.to_file(os.path.join("maps","brazilMaps_5641_all.gpkg"),layer='airports', driver="GPKG")
# brazil_border.to_file(os.path.join("maps","brazilMaps_5641_all.gpkg"), layer='border', driver="GPKG")
# brazil_states.to_file(os.path.join("maps","brazilMaps_5641_all.gpkg"), layer='states', driver="GPKG")
# brazil_municipalities.to_file(os.path.join("maps","brazilMaps_5641_all.gpkg"), layer='municipalities', driver="GPKG")
In [ ]:
 
In [ ]: